1. 概述
PHP中,数据类型的转换主要有自动类型转换和强制类型转换两种;
2. 自动类型转换(隐式转换)
PHP 中的自动类型是指在定义常量和变量时,不需要指定常量或变量的数据类型; 在代码执行过程中,PHP会根据需要将常量或变量转换为合适的数据类型,所以,数据类型的自动转换一般发生在对变量重新赋值和对不同类型的变量进行运算操作时;
2.1 给变量重新赋值
在PHP中变量定义时不需要明确的数据类型定义,会根据使用变量的上下文环境及赋值的数据决定变量的类型; 在对变量重新赋予一个与之前不同数据类型的值后,变量的数据类型会自动转换; 例子 1:
$ble="Bob";
$ble=10;
2.2 对不同数据类型的变量进行运算操作
对不同数据类型的变量进行运算操作时,一般算术运算符中的加法运算符 “+” 和连接符 “·”,会选择占用字节最多的一个运算数的数据类型作为运算结果的数据类型,而另一个操作数会自动转换为占用字节最多的那个运算符的数据类型; 例子 2: 在以下代码中,“+” 会自动按数字运算:
$x=1+1.2;
$y=2+"1.2";
$z=3+"hello";
例子3: 在以下代码中,“·” 会自动按字符串运算:
$b=1;
$c=$b.'b';
例子 4:
<?php
$a=true;
$b=null;
$c=1000;
$d="100abc";
$e=0.1;
符串的长度
var_dump($a+$c);
echo "<br>";
var_dump($b+$c);
echo "<br>";
var_dump($c+$d);
echo "<br>";
var_dump($c+$e);
echo "<br>";
var_dump($e+$e);
echo "<br>";
?>
执行结果如下所示:
3. 强制类型转换
PHP中两种强制转换为指定的数据类型,语法如下:
3.1 使用强制类型转换
(类型名)变量或表达式
类型名包括 int、integer、float、real、bool、boolean、array、object ,类型名两侧的括号一定不能省略; int 和 integer 转换成整型,float、double和real 转换为浮点型,string 转换为字符串,bool 和 boolean 转换为布尔型,array 转换为数组,object 转换为对象; 例子 5:
$num1=3.1415926;
$num2=(int)$num1;
print_r($num1);
print_r($num2);
PHP中数据类型的强制转换: 例子 6:
<?php
$str="你好,欢迎访问菜鸟教程!";
echo "这是原始string形式:".$str;
echo "<br>";
echo "这是boolean形式:".(boolean)$str;
echo "<br>";
echo "这是integer形式:".(integer)$str;
echo "<br>";
echo "这是原始float形式:".(float)$str;
echo "<br>";
echo "这是原始array形式:".(array)$str;
echo "<br>";
?>
执行结果如下所示:
3.2 使用类型转换函数
可使用 intval()、floatval()、strvar()、settype() 等函数实行类型的强制转换; 例子 7:
$str"321.8abc";
$int=intval($str);
$float=floatval($str);
$str=strval($float);
$num4=13.7;
settype($num4,"int");
强制转换类型转换使用起来比较方便,但也存在一些问题,如字符串转换为整型该怎么转,整型转成布尔型该怎么转,都需要一些明确的规定,PHP为此提供了相关的规定;
结束语
若这篇文章有帮到你,给个赞,收个藏,欢迎大家留言评论; 若文章有什么错误,欢迎大家指教。
|