



PHP代码中,数据操作有着很大的灵活性,也能够完成大部分的自动转换工作,不过,有时还是需要很精确地判断数据类型,并在需要时进行类型转换。
判断数据的类型时,可以使用一系列的is_XXX()函数,如:
● is_array()函数,判断参数是否为数组类型,第8章会详细介绍数组的应用。
● is_bool()函数,判断参数是否为布尔类型。
● is_float()、is_double()和is_real()函数,判断参数是否为浮点数。
● is_int()、is_integer()和is_long()函数,判断参数是否为整数。
● is_numeric()函数,判断参数是否为一个数值(数字或数字字符串)。
● is_finite()函数,判断参数是否为有限值。
● if_infinite()函数,判断参数是否为无限值。
● is_nan()函数,当参数是一个数值时返回false,不是数值时返回true。
● is_null()函数,判断参数是否为空值(null值)。
● is_object()函数,判断参数是否为一个对象。
● is_resource()函数,判断参数是否为资源类型。
● is_string()函数,判断参数是否为字符串,如is_string("1")返回true,is_string(1)返回false。
● is_scalar()函数,判断参数是否为标量类型,当参数类型为int、float、string或bool类型时返回true,否则返回false。
PHP中的数值包括整数和浮点数,前面已经讨论了相关的运算。实际应用中,如果需要将一些数据转换这两种类型,可以分别使用intval()和floatval()函数,它们总是会返回一个数值,转换不成功时也会返回0。下面的代码演示了这两个函数的使用。
<?php
$s = "123.55";
$i = intval($s);
$f = floatval($s);
echo $i,"<br>",$f;
?>
执行结果会显示123和123.55。可以看到,使用intval()函数转换为整数时,只截取整数部分,小数部分会被舍弃,并不会四舍五入。
请注意,使用intval()和floatval()函数时,会读取参数中有效的数值部分,一旦读取了非数值内容会立即停止,然后将读取的内容转换为指定类型的数值。如intval("123a")返回123,而intval("a123")返回0。
intval()函数中默认执行的是十进制数的转换,也可以使用第二个参数指定转换内容的进制,如下面的代码。
<?php
echo intval("ff",16);
?>
代码执行结果显示255。这里指定需要转换的内容是十六进制形式,本例中十六进制数ff会转换为十进制数的255。