2011-08-02 89 views
-2

這是什麼PHP代碼?

is_array($data) OR $data = (array) $data 

我看到PyroCMS

回答

3

OR是一個短路運營商。如果左側是true,則不會評估右側。它基本上說「如果$data不是數組,將其轉換爲數組」。

請注意,這是相當多餘,可以簡寫爲:

$data = (array)$data; 

這有同樣的效果。如果它已經是一個數組,則轉換爲數組將不會執行任何操作,否則將轉換爲數組。

+0

它也確保數組$ data存在(就像你的版本一樣,但我覺得值得一提)。 – vascowhite

+0

@vascowhite是的,但這是錯誤的方式來確保,因爲如果變量*不存在,PHP將發出兩個通知。 – deceze

+0

感謝提及「短路」關鍵字。這非常有幫助。我真的不知道它可以完成PHP – Permana

0

這段代碼它等於:

if (!is_array($data)) $data = (array) $data 
1

它測試,如果$的數據是一個數組,並將它轉換到一個,如果事實並非如此。

0

這是寫作的(可怕在我看來)的hackish方式:

if(!is_array($data)) { 
    $data = (array) $data; 
} 

這基本上是強制$ data變量是一個數組。

不要這樣寫代碼。這很難處理(精神),並沒有節省任何時間。 :-)