在进行==和===比较时,变量的顺序是否重要?

sam*_*ave 3 php comparison-operators

在比较之后=====进行比较时放置变量真的很重要吗?

if (null == $var) {

}

if ($var == null) {

}
Run Code Online (Sandbox Code Playgroud)

我经常看到编码员更喜欢这种方式,是不是速度差异?

更新:

对不起,我没有做出清楚我的问题,我想知道是不是之间的不同=====,但这样的表达式null == $var$var == null,所以我已经改变了代码示例.


结论:

没有功能或性能差异.有些人认为这是最佳做法或仅仅是编码风格.BTW它有一个很酷的名字:尤达条件:)

仅供参考:PHP错误消息使用此样式,例如

PHP Fatal error:  Cannot use isset() on the result of an expression (you can use "null !== expression" instead)
Run Code Online (Sandbox Code Playgroud)

不知道为什么这个问题被标记为重复(3个不同的等于)不是(' = = $ $ var'和'$ var === false'之间有什么区别?)

mic*_*ses 6

它可以防止错误导致很难调试错误.这是为了万一你不小心写,=而不是==:

if ($var == null)  # This is true in case $var actually is null
if ($var =  null)  # This will always be true, it will assign $var the value null
Run Code Online (Sandbox Code Playgroud)

相反,切换它们更安全:

if (null == $var)   # True if $var is null
if (null =  $var)   # This will raise compiler (or parser) error, and will stop execution.
Run Code Online (Sandbox Code Playgroud)

使用此问题停止在特定行上的执行将使调试变得非常容易.另一种方式是相当困难,因为你可能会发现自己进入if条件,并且失去变量的值,你将无法轻易找到它.