==和===php中的运算符
假设我有一个始终是字符串的变量 现在看下面的代码:==和===php中的运算符,php,operators,equality-operator,Php,Operators,Equality Operator,假设我有一个始终是字符串的变量 现在看下面的代码: if($myVar === "teststring") 注意:$myVar将始终是一个字符串,因此我的问题是 使用===(一致性)或==(相等性)哪个更快/最好?一般来说,当我编码时,我使用==over==,但是,使用标识更精确,而且速度稍快(差异最小) 两者之间的差异可能与您的需要无关。身份测试总是更快,因为PHP不必键入Juggle来评估比较。然而,我要说的是,速度差在纳秒范围内,完全可以忽略不计 相关阅读: ==会稍微快一点,但更
if($myVar === "teststring")
注意:$myVar
将始终是一个字符串,因此我的问题是
使用
===
(一致性)或==
(相等性)哪个更快/最好?一般来说,当我编码时,我使用==over==,但是,使用标识更精确,而且速度稍快(差异最小)
两者之间的差异可能与您的需要无关。身份测试总是更快,因为PHP不必键入Juggle来评估比较。然而,我要说的是,速度差在纳秒范围内,完全可以忽略不计 相关阅读:
==
会稍微快一点,但更重要的是,它强制执行$myVar
将是一个字符串,因此您不必担心它作为其他类型的可能影响。在这种情况下,我将使用==因为您并不真正关心$myVar的类型。我很确定速度是一样的(即使是在一个超级循环中,这也无关紧要)。如果你决定使用=
,改变条件(“teststring”==$myVar
)有助于捕捉可能的打字错误(如果您错过了两个等号中的一个,您将更改$myVar
的值,并具有一个始终为true的if条件!)。应该尽可能避免IMHO=
,因为要正确读取类型转换对语句的影响需要更多的人力(特别是在PHP中)。与===
之间要么完全匹配,要么不匹配。我同意,在进一步研究之后-我是gunna修改我的语句。+1.出于好奇,我只是运行了一个快速测试,将==
语句和==
放在一个循环中,使它们执行了1000万次。两者之间没有真正的区别。重复多次测试==
有时更快,有时更慢,但我们实际上是在讨论1毫秒的差异…@nico,这取决于==
是否触发了类型转换。您可能已经测试了一个比较同一类型变量的情况(或者等式运算符甚至不尝试转换的情况)。