简介:大多数可变函数主要用来测试一个函数的类型的,包括测试特定类型的测试函数、测试变量状态的函数等。
测试和设置变量类型
- gettype()函数
settype()函数
PHP中最常见的测试一个函数类型的两个函数是 gettype() 和 settype() ;
gettype()函数
函数原型如下:
string gettype(mixed var );
说明:使用gettype()函数,必须传递一个变量给它,它将确定变量的类型并且返回一个包含类型名称字符串。- PHP中标准的字符串包括:bool、int、double(浮点型)、string、array、object和resource;
- 如果变量类型不是标准类型之一,该函数将会返回“unknow type”;
settype()函数
bool settype(mixed var, string type);
说明:需要使用settype()函数时,必需要传入两个参数,第一个参数是 设置改变类型的变量, 第二个参数是想要转换成的目标类型,即上述类型列表中的某个类型的字符串。
$a = 56;
echo gettype($a)."<br />";
settype($a,'string');
echo gettype($a)."<br />";
运行结果显示如下:
特定类型的测试函数
- is_array():
- 检查变量是否是数组
- is_double()、is_float()、is_real():
- 这三个函数相同,都用量检测变量是否是浮点型
- is_long()、 is_int()、 is_integer():
- 这三个函数相同,用来检测变量是否是整数
- is_string():
- 检查变量是否是字符串
- is_bool():
- 检查变量是否是布尔型
$a = false;//赋值
echo gettype($a)."<br />";//输出数据类型 boolean
$b = 0;//一般编程语言中,0代表假(false),1代表真(true)
echo gettype($b);//数组的数据类型为integer
- is_object():
- 检查一个变量是否是对象
- is_resource():
- 检查一个变量是否是资源
- is_null():
- 检查变量是否为null
- is_scalar():
- 检查一个变量是否为标量,标量有整数、布尔值、字符串或浮点数
- is_numeric():
- 检查该变量是否是任何类型的数字或数字型字符串
$a = "4321";
var_dump(is_numeric($a));//运行后浏览器输出“ boolean true”
echo is_numeric($a);//输出 数字1(即代表布尔 真)
- is_callable():
- 检查一个变量是否是有效的函数名称
function test(){
return "test function:is_callable()";
}
var_dump('test');//输出 boolean true
var_dump('text');//输出boolean false
测试变量状态函数
主要包括两个函数: isset() 和 empty()
isset()函数
函数原型如下:
bool isset(mixed var [, mixed var[,…]]);
说明:这个函数需要输入一个变量名称作为参数,如果这个变量存在,则返回true(boolean型),如果这个变量不存在则返回false(boolean型)。
强调:isset()函数用于检测变量是否存在,与变量是否有值无关
补充:isset()函数和unset()函数结合,可以销毁特定的变量;
empty()函数
函数原型如下:
bool empty(mixed var)
说明:empty()函数用来检测一个变量是否存在,以及它的值是否为非空或非0,并返回对应的true或false
代码示例:
$var = "";
var_dump(empty($var));
var_dump(isset($var));
$var1 = 1;
var_dump(empty($var1));//输出 'boolean false'
var_dump(isset($var1));//输出 'boolean true'
$var1 = 0;
var_dump(empty($var1));//输出 'boolean true'
var_dump(isset($var1));//输出 'boolean true'
//$var1 = 1;
var_dump(empty($var1));//输出 'boolean true'
var_dump(isset($var1));//输出 'boolean false'
补充:结合isset()函数和empty()函数,对于表单域的内容进行过滤,可以确保用户填写了正确的表单