奇怪的双等于行为(php)

时间:2015-01-29 01:34:33

标签: php

我的问题是为什么......

$validationFail = "1";
$validationFail .= "i88"; 
$validationFail .= "w19"; 
echo $validationFail;
if($validationFail==1){
    echo "hello world";
}

输出1i88w19hello world

我知道if失败了===,但为什么会这样呢?

(代码在http://phpfiddle.org/中运行)

1 个答案:

答案 0 :(得分:1)

将字符串与数字进行比较时,会将字符串转换为数字,然后将其与其他数字进行比较。将字符串转换为数字的方法是通过读取字符串直到它到达第一个非数字字符。因此,字符串1i88w19变为11 == 1为真。