所有字母的字符串 和 0 都是恒等的?求解释if("e" == 0){
echo "Yes";
}
#result:
#Yes

解决方案 »

  1.   

    this way : echo "e" === 0;
      

  2.   

    php会自动转换变量的类型,int和string对比那么会将string转成int,如此一来所有字符串都是0,那么结果也就确定了,你可以用===全等来判断
      

  3.   

    这样解决更清楚:echo intval('e');#转换不成功,默认0(print:0)
    echo intval('1ds2e');#字符串中有整数出现,则取第一次出现的位置,转换成int (print:1)
      

  4.   


    这句说法是错的,“字符串中有整数出现,则取第一次出现的位置,转换成int (print:1) ”应该是这样:字符串中有整数出现,并且整数在字符串的起始位置,则取出,转换成int  
      

  5.   

    我试过了,所有非数字的字符串和0比较都会是恒等if("*" == 0)
    echo "Yes";
    #Yes
    if("e" == 0){
    echo "Yes";
    #Yes
    if("1" == 0)
            echo "Yes";
    #感谢楼上各位对这种小问题的关心。看来我忽略的细节还有很多