if(0=='abc')为什么会表示为真呢?求指教原理

解决方案 »

  1.   

    if (0 == intval('abc')) 弱类型,后面的会转为前面的类型,再比较你需要用 0 === 'abc'
      

  2.   

    因为'abc'被强转成了(int)'abc',和0 == intval('abc')一样。。这个行为没注意过啊。。 我擦,PHP这是要逆天。
      

  3.   

    字符串和数字想判断,那么会将字符串取int值,所以abc在int的意义上就是0,所以相等,你可以用===来判断,这样连带着类型也判断了
      

  4.   

    var_dump((int) 'abc'); //int(0)
    http://www.php.net/manual/zh/language.operators.comparison.php
    看一下“比较多种类型”这一节。
      

  5.   

    ls两位已解答。if(0=='abc')  等于  if(0==intval('abc'))