2010-12-02 162 views
4

爲什麼形式if之類的語句...以這種方式訂購if語句的原因是什麼?

if (null === $this->foo){...} 
if (0 === count($bar)){...} 

,而不是...

if ($this->foo === null){...} 
if (count($bar) === 0){...} 

我已經在許多程序員,我尊重項目的代碼,注意到這一點,但我不不知道他們爲什麼這樣做。我這樣做的第二種方式,因爲它遵循我的想法「如果這個值與null相同,那麼...」而詢問「如果null與此值相同...」對我來說似乎不那麼明顯。所以爲什麼?

+5

它被稱爲「尤達說」;) – KingCrunch 2010-12-02 00:25:56

+0

@KingCrunch我很喜歡標籤「尤達條件」 – tobyodavies 2010-12-02 01:05:34

回答

16

它旨在確保您不會意外地將if(this-> foo = null)而不是double ==。

這是PHP將自動爲您趕上

if (null = $foo) {} 

一個錯誤,而這可能是一個錯誤的(儘管它可能是蓄意的,有時是有用的)

if ($foo = null) {} 

所以,通過訂購您在這種情況下,您可以保護自己免於意外分配值而不是比較它們。

相關問題