isset、empty、is_null用法

Posted by epimetheusQ on 2021-08-16

isset 一般用来检测变量是否设置

isset($a); 若$a 没有定义(var_dump时会报notice),返回false,或者 变量中的某个key没有set
isset(null); 返回 false

若变量不存在,如:

1
2
3
4
5
6
7
8
$a['c'] = 1;
isset($a['b']); // 返回false
// ----------------
$a = null;
isset($a); // 返回false
// ------------------
$a;
isset($a); // 返回 false

其他返回true

empty 判断值是否为空或者是否为0

1
2
3
$a;
var_dump(empty($a)); // 返回true,因为$a不是一个属性,没有实际的值,等同于 null

“”、0、”0”、NULL、、FALSE、array()、var $var; 返回true,只要一切不存在的,都返回true
一切有值,有意义的返回false

类似于 ! $val;

注意: 若 $a = ‘0’,此时0为字符串,也是true,因为是检测为空,或者为0

is_null 判断是否为null

1
2
$a;  或者 $a = null;
var_dump(is_null($a)); // 返回 true

表格:

变量 empty is_null isset
$a=”” true false true
$a=null true true false
var $a true true false
$a=array() true false true
$a=false true false true
$a=15 false false true
$a=1 false false true
$a=0 true false true
$a=”0” true false true
$a=”true” false false true
$a=”false” false false true