我正在比较两个字符串:
<?php
$Str1 = '111122223333444455556666';
$Str2 = '111122223333444455557777';
if($Str1 != $Str2){
// Do something
} else {
// Do something else
}
?>
Run Code Online (Sandbox Code Playgroud)
显然,$ Str1与$ Str2不同,但仍然总是执行else-block.我知道我应该在这里使用===或!==比较,但我想知道为什么(基本上)我尝试的任何其他值实际上评估它的预期方式.
我还在文档"如果字符串不包含任何字符'.','e'或'E'并且数值适合整数类型限制(由PHP_INT_MAX定义)中读到这个,字符串将是评估为一个整数.",所以我猜它不应低于或等于PHP_INT_MAX的值(这远远小于我上面评估的字符串) - 假设这是他们的意思"适合".那么为什么上面的字符串被评估为相同?它可能是一个PHP错误还是我缺少的东西?
我从昨天起使用PHP版本5.3.8,来自PHP 5.3.6.在Windows XP上运行.