日期:2014-05-17  浏览次数:20479 次

反了
PHP code

$a = 0;
function test($a){
    if($a==''){
        return true;
    }else{
        return false;
    }
}




这个函数为什么反回true呢

------解决方案--------------------
var_dump($a==''); 返回什么
------解决方案--------------------
∵ $a = 0 等于空
∴ $a == '' 成立

$a === '' 就不成立了
------解决方案--------------------
0,false,‘’这三个都是 == 的,你可以用 === 来判断。
------解决方案--------------------
PHP code

0 == null == false == '' == ""
当然全等都不成立,暂时就想到这么多

------解决方案--------------------
參考php手冊的empty函數,和這差不多。
bool empty ( mixed var )
如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。 


------解决方案--------------------
探讨
引用:

∵ $a = 0 等于空
∴ $a == '' 成立

$a === '' 就不成立了

== 和===有啥区别