以下是这4种可能性的输出,isset()
以及empty()
这4种可能性的输出:未声明,null,false和true。
$a=null;
$b=false;
$c=true;
var_dump(array(isset($z1),isset($a),isset($b),isset($c)),true); //$z1 previously undeclared
var_dump(array(empty($z2),empty($a),empty($b),empty($c)),true); //$z2 previously undeclared
//array(4) { [0]=> bool(false) [1]=> bool(false) [2]=> bool(true) [3]=> bool(true) }
//array(4) { [0]=> bool(true) [1]=> bool(true) [2]=> bool(true) [3]=> bool(false) }
您会注意到,除了 case 之外,所有“ isset”结果都与“ empty”结果相反$b=false
。评估为false的所有值(除null以外不是值而是非值)在被by测试时将返回true,isset
而由'empty'测试时将返回false。
因此,isset()
当您担心变量的存在时使用。和使用empty
,当你正在测试真或假。如果实际类型的空虚问题,使用is_null
和===0
,===false
,===''
。