這是什麼PHP代碼?
is_array($data) OR $data = (array) $data
我看到PyroCMS
這是什麼PHP代碼?
is_array($data) OR $data = (array) $data
我看到PyroCMS
OR
是一個短路運營商。如果左側是true
,則不會評估右側。它基本上說「如果$data
不是數組,將其轉換爲數組」。
請注意,這是相當多餘,可以簡寫爲:
$data = (array)$data;
這有同樣的效果。如果它已經是一個數組,則轉換爲數組將不會執行任何操作,否則將轉換爲數組。
這段代碼它等於:
if (!is_array($data)) $data = (array) $data
它測試,如果$的數據是一個數組,並將它轉換到一個,如果事實並非如此。
如果代碼類型不是數組,則該代碼類型將$ data轉換爲數組。在類型轉換
更多信息 - http://php.net/manual/en/language.types.type-juggling.php
這是寫作的(可怕在我看來)的hackish方式:
if(!is_array($data)) {
$data = (array) $data;
}
這基本上是強制$ data變量是一個數組。
不要這樣寫代碼。這很難處理(精神),並沒有節省任何時間。 :-)
它也確保數組$ data存在(就像你的版本一樣,但我覺得值得一提)。 – vascowhite
@vascowhite是的,但這是錯誤的方式來確保,因爲如果變量*不存在,PHP將發出兩個通知。 – deceze
感謝提及「短路」關鍵字。這非常有幫助。我真的不知道它可以完成PHP – Permana