2015-05-11 32 views
2

比较:变量顺序/侧与关系运算符有什么区别?

if (donald_duck != null) 
if (roast_potatoes > 9000) 
if (love === 'explosions') 

if (null != donald_duck) 
if (9000 <= roast_potatoes) 
if ('explosions' === love) 

在我写的语言,我一直使用一阶,因为它是有道理的人类智慧。例如“鹦鹉死了吗?” vs“鹦鹉是死的吗?”不过,我已经看到(空==变量)顺序在不同的语言和地方使用了几次。

它会产生什么样的操作差异,并且是一种在语法上更加正确还是被广泛采用的方法?

(我知道这可能是各种语言的不同,所以特别我在问关于PHP)

+1

重复:S你都可以做,它只有在某些[评估类型]的差异(http://en.wikipedia.org/wiki/Evaluation_strategy) –

+0

[尤达条件是](http://en.wikipedia.org/wiki/Yoda_conditions) –

+0

我尝试用各种短语搜索,但无法找到关于它的问题。哪个问题是重复的?我当然不会搜索'评估类型'或'yoda'。 – Ron

回答

2

有一个在行为没有什么不同,但它有助于避免错误例如在比较。

如果您使用obj == null进行比较,则存在一定的出错风险,请将obj = null代替,导致代码出现问题并且出现意外结果。

但是如果你使用null == obj比较,这种风险就会消失,因为null = obj不是有效的句子(你不能指定一个目标是null),你会在编译时收到错误信息。

希望这有助于

+0

谢谢,它确实有帮助!在单元测试,内联评估和结构化调试的世界中,我想我会避免习惯它。干杯。 – Ron

相关问题