2014-10-02 40 views
0

我看到多個例子(從WordPress的芯):

if ('' != $qv['subpost']) 
      $qv['attachment'] = $qv['subpost']; 

是上面的代碼相同:

if ($qv['subpost'] != '') 
      $qv['attachment'] = $qv['subpost']; 

或者它們在功能上有所不同?

+3

有兩種程序員有;那些尤達和那些誰沒有。 – 2014-10-02 14:20:40

+1

有些人喜歡尤達程序(它需要一個不同的心態,但去除了一個=時,應需要兩個問題) – 2014-10-02 14:22:24

+0

當然,在這個特殊的例子尤達大師的風格是沒有意義的,因爲它使用'!='不''==。 – 2014-10-02 14:25:23

回答

5

有些人喜歡constant == variable的選擇,因爲它會導致致命錯誤,如果你不小心鍵入=,並嘗試做任務:

例如

$a = 'foo'; // assigns 'foo' to $a 
$a == 'foo'; // tests for equality 
'foo' == $a // tests for equality 
'foo' = $a // syntax error - assigning value to a string constant 

但在功能上,否則,兩個版本之間沒有區別。 a == b完全等同於b == a

0

是的,他們做同樣的事情。它會檢查$qv['subpost']是否包含兩個示例中的值。根本沒有區別,除非你是Yoda

0

沒有區別。

(A == B) == (B == A) 

,有人可以先放值的唯一事情是可讀性,例如:

if ('APPLE' == $var) { 

} else if ('BANANA' == $var) { 

} 
0

沒有功能上的差異。你正在比較平等,不管他們的價值觀在哪一邊,他們都會平等或不平等。

這個問題歸結爲代碼風格。就個人而言,當與靜態值進行比較時,我寧願始終在左邊有變量。其他人不同意。使用您正在處理的項目中的任何風格。