我用'=='对几个字符串进行了测试。我知道使用'=='比较字符串不是正确的方法,但有一个奇怪的行为我想要解决。
我正在遵循PHP文档中的页面Comparison Operators。这是我做的测试:
<?php
var_dump( "100" == "1e2" ); // Outputs boolean true
var_dump( (int) "100" ); // int 100
var_dump( (int) "1e2" ); // int 1
?>
文档说明在比较字符串和数字时,PHP会将字符串转换为数字,但是当我将'100'和'1e2'转换为数字时,它们并不相等。比较应该输出布尔值false。
这种奇怪的行为是为什么呢?
===
而不是==
,因为结果更可预测! - John Carter===
)吗?这个问题在Stack Overflow上的规范问答是什么? - Peter Mortensen