正文
PHP ‘true’ == 0 答案居然是 1,为真!这个判断颠覆了长期以来认为 字符串 == 1 的认识。
下面举几个实例:
> echo 'true' == 0; // 1
>
> echo '1true' == 0; // false
>
> echo '0true' == 0; // 1
>
> echo 't0rue' == 0; // 1
>
> echo 'true0' == 0; // 1
可以看出 字符串 == 数字 判断,会对前面字符串转义,第一位为数字几,转义后就是几,否则都是0。
下面验证一下:
> echo 'true' == 1; // false
>
> echo '1true' == 1; // 1
>
> echo '0true' == 1; // false
>
> echo 't1rue' == 1; // false
>
> echo 'true1' == 1; // false
所以涉及到 字符串 == 数字 判断的,请使用 === 判断。里面涉及到php的底层,可以翻着理解下。