在本系列的這一點上,我們已經介紹了很多內容。到目前為止,我們已經討論了以下主題:
很多東西,對吧?
在這篇特別的文章中,我認為在進入最後一個主題之前我們應該先輕鬆一點。因此,我們將討論兩個非常簡單的主題(通常被忽略或過於複雜)。
具體來說,我們將討論三元運算符,並且我們將討論 Yoda 條件。
在編寫基於 WordPress 的程式碼時,程式設計標準嚴格規定我們應該先以可讀性為目標。直接來自法典:
一般來說,可讀性比聰明或簡潔更重要。
但是這其中有一些細微差別。 有些開發人員認為三元運算子與這個特定原則有點不一致,特別是因為它是編寫if/else
語句的另一種方式,並且如果開發人員不熟悉編寫或讀取三元運算符,那麼這違反了這個原則。
我們稍後會更深入地討論這個問題。
首先,對於那些不熟悉的人來說,三元運算子是編寫 if/else
條件語句的簡化方法。通常僅當條件是最簡單的形式時以及僅當存在單一 if
和單一 else
區塊時使用。
例如,假設我們有一個這樣的條件:
$uses_gasoline = null; if ( 'hybrid' == $car_type ) { $uses_gasoline = false; } else { $uses_gasoline = true; } echo $uses_gasoline;
當然,這是一個有點做作的例子,但你明白了。畢竟,我只是想示範如何將這樣的條件轉換為三元運算子使用的形式。
根據上面的範例,您可以執行以下操作:
$uses_gasoline = 'hybrid' == $car_type ? false : true; echo $uses_gasoline;
有道理嗎?需要注意的一件重要事情是:三元運算子正在測試 true(而不是 false,顯然)。
就其價值而言,我發現這很像閱讀一個句子。第一個子句提出一個問題(顯然用問號標點),根據條件評估回傳兩個可能的答案。
有一個警告用於檢查 Codex 中記錄的所有內容是否真實:
使用
是例外! empty()
,因為這裡測試 false 通常比較直覺。
根據我的經驗,這是唯一一次在條件語句中使用否定評價。在我使用三元運算子的所有時間裡,我發現測試 false 通常會使三元計算變得更難破解。
此外,我發現最好提供一次評估,也許在非常簡單、清晰的情況下提供兩次評估。
除此之外,這就是您在日常 WordPress 工作中使用三元運算子的方式
如果您密切關注,您會注意到我做了一些大多數程式語言(甚至 WordPress 以外基於 PHP 的平台)通常不會做的事情:
條件的比較是透過將值與變數進行比較來完成的;不是相反。
傳統上,我們會看到這樣的東西:
$uses_gasoline = null; if ( $car_type == 'hybrid' ) { $uses_gasoline = false; } else { $uses_gasoline = true; } echo $uses_gasoline;
對應的三元運算子看起來像這樣:
$uses_gasoline = $car_type == 'hybrid' ? false : true; echo $uses_gasoline;
如果大多數程式語言和平台不使用 Yoda 條件,那麼 WordPress 為什麼要使用?
根據食品法典:
在上面的例子中,如果你省略了一個等號(承認這一點,即使是我們中最有經驗的人也會發生這種情況),你會得到一個解析錯誤,因為你不能指派給像這樣的常數
true
。如果該語句是相反的( $the_force = true )
,則該賦值將完全有效,傳回1
,導致if 語句的計算結果為true
#而您可能會追尋該錯誤而。
在我看來,對於執行這類比較來說,這是一個非常非常好的解釋,尤其是在 PHP 和 JavaScript 等動態類型語言中。
無論您是否同意這種方法,它都是標準的一部分,並且您將看到它通過 WordPress 核心、主題、外掛程式、文章等等。
為此,我強烈建議您開始在自己的工作中實施。
正如我在開頭提到的,這篇特定的文章將比我們迄今為止在本系列中介紹的其他一些材料簡單和直接。
此時,我們只剩下一個主要主題要討論:資料庫查詢。
之後,我們將回顧本系列中概述的所有主題,以總結我們在編碼標準中詳細說明的原則。
但首先,我們來討論資料庫查詢。
以上是探索 WordPress 編碼標準中的三元運算子和 Yoda 條件的詳細內容。更多資訊請關注PHP中文網其他相關文章!