我前段时间在一篇文章中读到,由于某种原因,我找不到在进行比较时顺序很重要。
我找不到任何关于PHP中比较顺序的信息。
它显然不会做出戏剧性的变化,但我很好奇这是否有任何优点。
在整个项目中,我正在研究的比较是作为.
以相反的顺序进行比较是否有任何区别,例如?$x === true
true === $x
显然,我在原始问题中提到的是一种称为“尤达条件”的编程风格。
这个wiki页面给出了关于这种风格的很好的解释。
这个答案让我理解了这个概念,只是注意到那里有一个小错误。
以下是我对此的看法:
使用此样式的主要原因是避免意外分配,当您打算与 进行比较时。=
==
如果要检查变量是否与进行比较时的值相同,请使用:
if(false == $var) // evaluates to true if $var is equal to false
多
if($var == false) // evaluates to true if false is equal to $var
防止
if($var = false) // assigns false to $var and evaluates to false
而
if(false = $var) // is a syntax error
如果要检查变量是否与进行比较时的值严格相同,请使用:
if(false === $var) // evaluates to true if $var is identical to false
多
if($var === false) // evaluates to true if false is identical to $var
在使用尤达风格的上下文中,这并不重要,因为严格比较并不是一个真正的问题,因为它很难混淆,但如果你使用它,那么也使用它来保持一致。=
===
==
===
总而言之,我认为尤达符号的优点在于它在一个条件下的比较和分配之间所强调的区别。
茅侃侃