if(0 == '0' && 0 == -0 && 0 == '-0'&& 1 == '+1' && NULL == 0)
print '<br/>adfsfs';
if(NULL == '0')
print '<br/> null 0';为什么后面print没打印出?为什么...

解决方案 »

  1.   

    if('+1' == 1 && 1 == '1')
    print '<br/> 1  1';
    if('+1' == '1')
    print '<br/> +1 1';这个也诡异啊, 字符串+1 和1一样..
      

  2.   

    类型不同,加了’‘号后0从整形编程了字符串,
    测试用例如下 if(NULL == 0){
    print '<br/> null 0';
    }else{
    echo 123;
    }
    echo "<br/>";
    if(NULL == '0'){
    print '<br/> null 0';
    }else{
    echo 123;
    }
    echo "<br/>";
    var_dump(NULL);
    var_dump(0);
    var_dump('0');
    根据根据楼主的需求给出一组更有针对性的测试用例$a1 = null;
    $a2 = false;
    $a3 = 0;
    $a4 = '';
    $a5 = '0';
    $a6 = 'null';
    $a7 = array();
    $a8 = array(array());//echo empty($a1) ? 'true' : 'false'; //t
    //echo empty($a2) ? 'true' : 'false'; //t
    //echo empty($a3) ? 'true' : 'false'; //t
    //echo empty($a4) ? 'true' : 'false'; //t
    //echo empty($a5) ? 'true' : 'false'; //techo empty($a6) ? 'true' : 'false'; //t 
    //echo empty($a7) ? 'true' : 'false'; //t
    echo empty($a8) ? 'true' : 'false'; //f
    echo "<br/>";
    var_dump($a6);
    echo "<br/>";
    var_dump($a8);
      

  3.   

    我记得php好像是泛类型的,所以你这样 字符串和数值比较是要默认转换的,所以你要跨数据类型的话,最好用
    ===,这样就没有问题了
      

  4.   

    if('0xa' == 0xa)
    print '<br/> 0xa';
    if('0xa' == '10')
    print '<br/> 0xa 10'; 碉堡了.这样可以相等呀