在我们结束对变量和操作符的介绍之前,还要了解一下PHP的可变函数。PHP有一个函数库,这个函数库允许我们使用不同的方法来操作和测试变量。
1.13.1 测试和设置变量类型
大部分的可变函数都是用来测试一个函数的类型的。PHP中有两个最常见的函数,分别是gettype和settype。这两个函数具有如下所示的函数原型,通过它们可以获得要传递的参数和返回的结果:
string gettype(mixed var);
bool settype(mixed var,string type);
要使用gettype函数,必须先给它传递一个变量。它将确定变量的类型并且返回一个包含类型名称的字符串:bool、int、double(对于浮点型)、string、array、object和resource。如果变量类型不是标准类型之一,该函数就会返回“unknown type(未知类型)”。
要使用settype函数,必须先给它传递一个要被改变类型的变量,以及一个包含了上述类型列表中某个类型的字符串。
提示 本书和php.net文档都提到了“混合”数据类型。PHP并没有这个类型。但是,由于PHP在类型处理方面非常灵活,因此许多函数可以用许多(或者任意)的数据类型作为参数。这些类型所允许的参数通常都是伪“混合”类型。
我们可以按如下所示的方式使用这些函数:
$a=56;
echo gettype($a).'<br/>';
settype($a,'double');
echo gettype($a).'<br/>';
当第一次调用gettype函数时,$a的类型是整数。在调用了settype后,它就变成了双精度类型。
PHP还提供了一些特定类型的测试函数。每一个函数都使用一个变量作为其参数,并且返回true或false。这些函数如下。
■is_array:检查变量是否是数组。
■is_double、is_float、is_real(所有都是相同的函数):检查变量是否是浮点数。
■is_long、is_int、is_integer(所有都是相同的函数):检查变量是否是整数。
■is_string:检查变量是否是字符串。
■is_bool:检查变量是否是布尔值。
■is_object:检查变量是否是一个对象。
■is_resource:检查变量是否是一个资源。
■is_null:检查变量是否是为null。
■is_scalar:检查该变量是否是标量,即,一个整数、布尔值、字符串或浮点数。
■is_numeric:检查该变量是否是任何类型的数字或数字字符串。
■is_callable:检查该变量是否是有效的函数名称。