自动类型转换
php根据当时的运算符对运算数的要求,将不符合要求的数据类型转换为复合要求的数据类型,这种转换是自动的,但是要遵循一定的规则
1.算数运算中:非数值型转换为数值型
(1)布尔型真值转换为1,布尔型假值转换为0,null页转换为0
(2)字符串型数值若首字符非数字字符转换为0,若首字符为数字字符,则取得首字符开始的连续多个数字字符转换为对应的数值型即可,如:132ab转换为123,12.3ab转换为12.3
(3)数组中的元素视其中具体的数据类型参考1,2中的规则进行转换,数组名不支持转换
2.字符串连接运算中:非字符串转换为字符串型
(1)布尔型真值转换为“1”,布尔型假值转换为“0”,null页转换为空字符串
(2)包括整型,浮点型在内的数值类型数据直接换为他们的全部字符组成的字符串
(3)数组中的元素视其中具体的数据类型参考1,2中的规则进行转换,数组名可转换为array
3.逻辑运算时:非布尔型转换为布尔型
(1)数值型0或0.0转换为false,非零的任何数转换为true
(2)字符串型的空字符串,0以及空值null转换为false,其余转换为true
(3)数组中的元素视其中具体的数据类型参考1,2中的规则进行转换,数组名可转换为true
强制类型转换
1.使用括号括起来的类型名称来对其之后的数据及逆行类型转换,
类型转换操作符 | 转换成的类型 | 使用举例 |
(boolean),(bool) | 布尔型 | (boolean)$sum,(bool)$str |
(string) | 字符串型 | (string)$flo |
(integer),(int) | 整型 | (integer)$boo,(int)$str |
(float),(double),(real) | 浮点型 | (float)$str,(double)$str,(real)$str |
(array) | 数组型 | (array)$str |
(object) | 对象型 | (object)$str |
2.使用函数名以val结尾的函数
包括intval( ),floatval( ),strval( )等 ,分别用来把后面的数据类型转换为整型,浮点型和字符串:intval($str)可以把字符串型的数据转换为整型