php中变量的数据类型转换
在php中,当遇到不同类型数据进行混合运算时,php执行引擎会很智能将混合运算转为同一类型进行运算。有时我们自己需要将一些变量强制转为其他数据类型,也可以通过php中提供的一些机制和函数来实现。
变量类型转换:变量类型转换分为 自动转换和强制转换
自动转换:在php中自动转换常常发生在不同数据类型数据的混合运算中。在自动转换中,遵守一下规则。
(1).进行混合运算前必须转为同一类型数据(整型或者浮点型)。
(2).自动转换的转换方向为按数据长度增长的方向进行,保证精度不降低。
具体的来说:
(1).布尔型自动转换时:true转为整型 1 false转为整形的 0
(2).null型转换时:null转为整型 0
(3).字符串型(内容必须是整型或者浮点型或者是空格开头才可以) 转为内容对应的整型或者是浮点型。
如 $t='3.12a' 转为 3.13 $t=' 3.22ndsd' 转为3.22 但是 $t='a3.2' 不会被转换。
(4).整形可向浮点型转换。
(5).null值转为字符串,为空字符串 ""。
强制转换:$t='a3.2' 不会被转换。字符串开始部分必须是数字,否者不会转换。
(1).通过在变量前面加用括号括起来的目标类型,强制转换。如
(int)$t 转为整形, $t=3.423ad 转为3
(float)$t 转为浮点型 $t=3.423sd 转为3.423
(string)$t 转为字符串
(array)$t 转为数组
(object)$t 转为对象
(2).通过具体的转换函数,强制转换。
intval($t) 将$t转为整型
floatval($t) 将$t转为浮点型
stringval($t) 将$t转为字符串型
注意这两种都没有改变变量本身的数据类型,而是将转换的值赋给另一个变量。要想对变量本身的数据类型进行强制转换的话,需要使用函数settype([],[])
如: settype($t,"integer") 将$t转为整型。