php – 在相等比较会产生与严格的相等比较相同的结果的情况下,应该使用哪两个?

举一个例子,它应该是$name ==“John Doe”还是$name ===“John Doe”?

我猜想平等比较会表现得更差,因为他们会进行某种类型的投射.

附:我知道选择一个相对于另一个的性能增益可以忽略不计,如果有的话.这是一个原则问题.

最佳答案
你不需要在大多数代码中检查===,如果你仔细考虑到你没有使用强类型语言这一事实​​,但是当你编写PHP代码时,这应该是一个不变的想法.

我通常使用==,保留===到PHP手册建议的内容(即strpos()调用和similars).

这是我运行的一些实证基准.也许我应该切换到=== 😉

$start = microtime(true);

for($i = 0; $i < 1000000; $i++) {
    if("1" === 1); 
}

$end = microtime(true);

echo number_format($end - $start,5,',','.') . " seconds";

// 0,06117 seconds for "thestring" === "thestring"
// 0,07601 seconds for "thestring" == "thestring"

// 0,05154 seconds for "1" === 1
// 0,09041 seconds for "1" == 1

转载注明原文:php – 在相等比较会产生与严格的相等比较相同的结果的情况下,应该使用哪两个? - 代码日志