1. 变量和 0 比较
如果一个变量 $va 是 NULL,没有被设置过。
if($va == 0){
echo "here is 0";
}else{
echo "不是0";
}
按照常规的想法,变量$va 是 NULL,应该走到 “不是0” 那里。 但是运行结果却恰恰相反,结果是 here is 0;
因为 == 是不比较数据类型的,当作一种类型比较了。 如上if(15 == '15') 也是跑到了第一个。
如果不想这样有两种方式。 换成($val === 0) 或者 提前加判断(isset($val) && 0 == $val)
2 empty() isset()
empty() ""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的 如果为空,返回true
empty( 0 array() NULL) 都返回true