下面对0,字符串”0″,数组,null,布尔,空做以总结验证
<?php
$valArr = [
'zero' => 0,
'zeroStr' => "0",
'array' => array(),
'null' => null,
'false' => false,
// 'true' => true,
'blank' => '',
];
echo "\n#######!\$val#######\n";
foreach ($valArr as $k => $val) {
if (!$val) {
echo "!\${$k}:true\n";
} else {
echo "!\${$k}:false\n";
}
}
echo "\n#######isset(\$val)#######\n";
foreach ($valArr as $k => $val) {
if (isset($val)) {
echo "isset({$k}):true\n";
} else {
echo "isset({$k}):false\n";
}
}
echo "\n#######empty(\$val)#######\n";
foreach ($valArr as $k => $val) {
if (empty($val)) {
echo "empty({$k}):true\n";
} else {
echo "empty({$k}):false\n";
}
}
echo "\n#######is_null(\$val)#######\n";
foreach ($valArr as $k => $val) {
if (is_null($val)) {
echo "is_null({$k}):true\n";
} else {
echo "is_null({$k}):false\n";
}
}
echo "\n#######\$val==null#######\n";
foreach ($valArr as $k => $val) {
if ($val == null) {
echo "{$k}==null:true\n";
} else {
echo "{$k}==null:false\n";
}
}
echo "\n#######\$val===null#######\n";
foreach ($valArr as $k => $val) {
if ($val === null) {
echo "{$k}===null:true\n";
} else {
echo "{$k}===null:false\n";
}
}
输出结果
#######!$val#######
!$zero:true
!$zeroStr:true
!$array:true
!$null:true
!$false:true
!$blank:true
#######isset($val)#######
isset(zero):true
isset(zeroStr):true
isset(array):true
isset(null):false
isset(false):true
isset(blank):true
#######empty($val)#######
empty(zero):true
empty(zeroStr):true
empty(array):true
empty(null):true
empty(false):true
empty(blank):true
#######is_null($val)#######
is_null(zero):false
is_null(zeroStr):false
is_null(array):false
is_null(null):true
is_null(false):false
is_null(blank):false
#######$val==null#######
zero==null:true
zeroStr==null:false
array==null:true
null==null:true
false==null:true
blank==null:true
#######$val===null#######
zero===null:false
zeroStr===null:false
array===null:false
null===null:true
false===null:false
blank===null:false
#######$val==""#######
zero===="":true
zeroStr===="":false
array===="":false
null===="":true
false===="":true
blank===="":true
#######$val===""#######
zero===="":false
zeroStr===="":false
array===="":false
null===="":false
false===="":false
blank===="":true
#######strlen($val)#######
strlen(zero):true
strlen(zeroStr):true
strlen(array):不支持
strlen(null):false
strlen(false):false
strlen(blank):false
总结:
if (!变量)全部为true
if (isset(变量))只有null为false 其他为true
if (empty(变量))全部为true
if (is_null(变量)) 只有null为true 其他为false
if (变量==null) 只有’0’为false,其他为true
if (变量===null) 只有null为true,其他false
if (变量==”) 只有数组和null为false,其他为true
if (变量===”) 只有”空为true,其他false
if (strlen(变量)) 只有0,’0’为true,其他false,当然数组不支持