2015-05-11 27 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

相關問題