php中null,0,'',false的区别

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';
    }
结果为:



你可能感兴趣的:(PHP,null,区别,空字符串)