empty()函数用来判断字符串是否为空
只要变量是0,null,'',false,empty()都判断为true。
$num1='';
$num2=0;
echo $num1==$num2;
echo '<br/>';
echo $num1===$num2 ? '1' : '0';
结果为:
原因是在PHP中变量时以C语言的结构体来存储的,空字符串和NULL,false都是以值为0存储的,其中这个结构体有个zend_uchartype;这样的成员变量,它是用来保存变量的类型的,而空字符串的类型是string,NULL的类型是NULL,false是boolean。而===运算符不仅比较值,还比较类型。
判断空字符串和0可以这样:
$num1='';
$num2=0;
if(empty($num1) && $num1===''){
echo "true";
}
if(empty($num2) && $num2===0){
echo 'true';
}
结果为: