PHP中的数据类型转换和类型检测
1. 自动转换
自动转换,又称隐式转换,很多情况下,PHP会根据上下文环境来对数据的类型自动进行转换。
2. 强制转换
强制转换,又称显示转换,在某些特殊情况下,需要我们手工地对数据进行强制类型转换。
- (int), (integer) :转换为整型。
- (bool), (boolean): 转换为布尔类型。
- (float),(double),(real) :转换为浮点型。
- (string):转换为字符串。
- (array) :转换为数组。
- (object):转换为对象。
- (unset):转换为 NULL。
还可以通过一些函数,实现数据类型的强制转换:
- intval($var):转换成整型,返回转换后的值。
- floatval($var) 或 doubleval($var):转换成浮点型,返回转换后的值。
- strval($var):转换成字符串型,返回转换后的值。
- boolval($var):转换成布尔类型,返回转换后的值。
上面的强制类型转换都是临时的,如果要实现类型的永久转换,可以使用函数settype()。
bool settype( mixed &$var , string $type )
设置变量的类型,成功返回true,失败返回false。
<?php
$a = 'g2';
settype($a, 'integer');
echo $a;
?>
函数gettype()可以返回一个变量的类型。
3. 变量类型的检测
- 检测是否为整型:is_int() 或 is_integer() 或 is_long()
- 检测是否为浮点型:is_float() 或 is_double() 或 is_real()
- 检测是否为字符串:is_string()
- 检测是否为布尔类型:is_bool()
- 检测是否为标量类型:is_scalar()
- 检测是否为数组类型:is_array()
- 检测是否为对象类型:is_object();
- 检测是否为资源类型:is_resource();
- 检测是否为NULL:is_null()
- 检测是否为数值类型包含字符串型的数值:is_numeric();

浙公网安备 33010602011771号