前边我们先容了PHP的8大数据范例,在实际应用中,我经常会遇到差别数据范例之间的运算,该怎样处理?
一、隐式转换(主动转换)
1.别的范例转换为数值范例
(1)true=1 $a=1+true =2
(2)false=0 $a=1+false =1
(3)null=0 $a=1+null =1
(4)字符串:以字母开头的字符串直接转换为0;以数字开头的字符串截取第一个数值。
$a=1+’a’ =1
$a=1+’12b3’ =13
2.别的范例转换为字符串范例(echo “华仔老师”,null,”是个帅哥!”)
(1)null转换为空字符串
(2)true转换为1
(3)false转换为空字符串
(4)数组转换为Array
3.别的范例转换为布尔范例(非0非空转换为true,是0是空转换为false)
(1)0转换为false
(2)0.0转换为false
(3)空字符串或”0”都转换为false
(4)null转换为false
(5)空数组转换为false
二、显式转换(强制转换)
1.临时转换
(1)(数据范例) (int)、(float)、(bool)、(string)、(unset)、(array)、(object)
注意:此方式不能转化为资源范例。
(2)通过函数形式实现临时转换
intval(变量) 转换为整数
floatval(变量) 转换为小数
strval(变量) 转换为字符串
boolval(变量) 转换为布尔
2.永久转换
settype(变量,设置的范例) 设置变量范例
gettype(变量) 得到变量范例
附:判断数据范例
is_int(变量) 是否整数
is_float(变量) 是否小数
is_string(变量) 是否字符串
is_bool(变量) 是否布尔
is_array(变量) 是否数组
is_object(变量) 是否对象
is_resource(变量) 是否资源
is_null(变量) 是否为空
is_numeric(变量) 是否数值
|