这里我们就如下类型进行测试:

$a;
$b = false;
$c = '';
$d = 0;
$e = '0';
$f = null;
$g = 'null';
$h = array();
$i = array(array());

 

先来看看empty函数的输出结果:

var_dump(empty($a));  //true
var_dump(empty($b));  //true
var_dump(empty($c));  //true
var_dump(empty($d));  //true
var_dump(empty($e));  //true
var_dump(empty($f));  //true
var_dump(empty($g));  //false
var_dump(empty($h));  //true
var_dump(empty($i));  //false

这里让我没想到的是$e = '0';居然也被判断为空。总结empty函数返回为true的情况如下图:

 

再来看看isset函数的输出结果:

var_dump(isset($a));    //false
var_dump(isset($b));    //true
var_dump(isset($c));    //true
var_dump(isset($d));    //true
var_dump(isset($e));    //true
var_dump(isset($f));    //false
var_dump(isset($g));    //true
var_dump(isset($h));    //true
var_dump(isset($i));    //true

这里我们可以总结一下:用isset判断时,只要变量被赋值,并且不为null,那么就返回true,否则false。

 

接下来我们看看is_null函数的输出结果

var_dump(is_null($a));    //提示未定义变量a
var_dump(is_null($b));    //false
var_dump(is_null($c));    //false
var_dump(is_null($d));    //false
var_dump(is_null($e));    //false
var_dump(is_null($f));    //true
var_dump(is_null($g));    //false
var_dump(is_null($h));    //false
var_dump(is_null($i));    //false

 

总结:用is_null判断时,只要变量被赋值,并且不是null就返回rtue,否则返回false。

那么这里我介绍几个雷同函数:

bool is_bool ( mixed $var )  //如果参数boolean 则返回 TRUE,否则返回FALSE

bool is_array ( mixed $var )  //如果参数array,则返回 TRUE,否则返回 FALSE

bool is_float ( mixed $var )  //如果参数float 则返回 TRUE,否则返回 FALSE

bool is_int ( mixed $var )  //如果参数integer 则返回 TRUE,否则返回 FALSE。(别名:is_integer

bool is_string ( mixed $var )  //如果参数string 则返回 TRUE,否则返回 FALSE

bool is_object ( mixed $var )  //如果 var 是一个 object 则返回 TRUE,否则返回 FALSE

bool is_resource ( mixed $var )  //如果给出的参数 varresource 类型,is_resource() 返回 TRUE,否则返回 FALSE

bool is_scalar ( mixed $var )  //如果给出的变量参数是一个标量,is_scalar() 返回 TRUE,否则返回 FALSE

bool is_numeric ( mixed $var )  //如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE