类型转换:会将原来的数据类型转换成我们所需要的类型。
自动转换:数据在使用的时候不需要人为的改变,它会自己根据情况转换。
例如:
$num = 123;
echo $num;// echo 只能输出字符串,如果有其他类型的会自动转换为字符串型,如果有无法转的则会报错
// 这个就自动把整数型的 $num 转换成了字符串类型的。
强制转换:人为的强制改变某个数据类型
允许的强制转换有:
(int), (integer) - 转换为整形 integer
(bool), (boolean) - 转换为布尔类型 boolean
(float), (double), (real) - 转换为浮点型 float
(string) - 转换为字符串 string
(array) - 转换为数组 array
(object) - 转换为对象 object
(unset) - 转换为 NULL
非永久转换
非永久转换是指并不会改变原来的值本身。非永久转换也可以分为两种方式转换
1.数据类型val() 函数
$num = 123;
$resB = boolval($num);
$resS = strval($num);
$resF = floatval($num);
var_dump($num); // int(123)
var_dump($resB);// bool(true)
var_dump($resS);// string(3) "123"
var_dump($resF);// float(123)
2.(数据类型) 变量
$num = 123;
$resB = (boolean)$num;
$resS = (string)$num;
$resF = (float)$num;
var_dump($num); // int(123)
var_dump($resB);// bool(true)
var_dump($resS);// string(3) "123"
var_dump($resF);// float(123)
永久转换 settype(变量,数据类型)
永久转换转换的则是原来的值本身。
$res1 = settype($num, 'string');
// settype($num, 'boolean');
// settype($num, 'float');
var_dump($res1); // bool(true) 这个代表的是settype转换是否成功,结果为布尔类型
var_dump($num); // string(3) "123" 最终改变的是原来的变量