PHP的数据类型转换,主要是将一些数据类型,比如说,将浮点数转换成整数,把字符串转换成整数,把字符串转换成布尔值的类型等等,也就是说,将一个变量或值从一种类型中,转换到另一种类型;在php中,数据类型的强制转换分为自动转换,和强制转换,而在php的日常应用中,最常用到的就是数据类型的自动转换;
首先,数据类型的自动转换,满足自动转换的条件通常是只有自动标量类型才可以进行自动转换,也就是整型(integer,int),浮点数(double),字符串(string),布尔值(bool)
$str="123zhixing123";
$double=12.124;
$integer=1212;
$bool=true;
$sum=$str+$double+$integer+$bool;
echo $sum."
";
?>
通过这个例子,我们可以看到,php数据类型的自动转换并没有改变这些运算符本身的数据类型,而是通过一种运算的形式,数据类型进行混合运算,然后自动进行的一种转换,都是由系统自动完成的;
接下来,我们来看下什么是php数据类型的强制转换
$var="1212zhixing123";
setType($var,"int");
var_dump($var)."
";
//我们用var_dump输出变量的,然后我们就可以看到变量的类型和变量的值,里边,我们攻了settype函数来强制把原来定义好了的字符串变量var转换成了整型;settype的函数结构是这样的setType(变量,"类型");需要注意的是,setType函数是把原来的变量的类型改变了的,还有另一种强制转换的方法,是不改变原来的变量数据类型,而是把原来的变量转换成或者赋值到另一个变量身上,然后得到的一个新的变量
$string="1212zhixing123";
$int=(int)$string;
echo $int."
";
//这里,我们通过了具体的变量类型来强制转换变量的类型;就是说,之前声明了一个变量a,然后我们用$b=(变量类型)$a;把原来的变量强制转换成一种类型,然后赋予一个新的变量,
?>
//注意:在整型和浮点数的类型转换的时候,因为受到内存的限制,所以,转换的数值也有一个限制,因为,一个整型在内存中占用4个字节,一个浮点型在内存中占用8个字节,所以说,只要是整型能够得到的数在浮点数中都能进行转换,反之,浮点型的值在整型中不一定可以进行转换,这里给出帧数的最大取值范围;2.147e9;也就是说,浮点型的值小于或者等于2.147e9,才可以进行整型的转换
$float=2.147e9;
$var=(int)$float;
echo $var."
"; //这个可以正常输出正确的值
$float1=2.148e9;
$var1=(int)$float1;
echo $var1."
"; //这个可以输出的值就是一个错误的值
?>
案例输出结果如下: