==和===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,这取决于
==
是否触发了类型转换。您可能已经测试了一个比较同一类型变量的情况(或者等式运算符甚至不尝试转换的情况)。