有誰能夠告訴我用 '===' 的差值作爲差異PHP
if (null === $this->getName())
和
if ($this->getName() === null)
如果$這個 - >的getName已定義。
由於事先
有誰能夠告訴我用 '===' 的差值作爲差異PHP
if (null === $this->getName())
和
if ($this->getName() === null)
如果$這個 - >的getName已定義。
由於事先
有兩個條件句之間沒有什麼區別,但是,它是一種常見的做法是將您首先檢查的價值,所以你不小心把一個條件檢查到一個賦值操作:
// Conditional
if ($this->getName() === null)
// Assignment
if ($myName = null)
// Avoids the confusion of either the above
if (null === $this->getName())
如果變量爲空,您也可以使用PHP函數is_null進行測試。
的===
操作者在PHP是對稱的,所以這些都是相同的。
從我讀過的內容來看,唯一明顯的區別就是嚴格按照寫作的順序,在某些情況下可以更容易地遵循給定的測試。
我也認爲PHP首先評估第一項,但這不會產生任何差異,因爲它們都將被評估。
只要您使用的是===
或==
,就沒有區別。
現在你可能想知道爲什麼有人在左側寫下所有的值。這是因爲我們的開發者傾向於忘記或者有錯字==
,我們輸入=
。這是意外的任務。
if($id=13){
echo "foo";
}
很難在上面的代碼中找到問題。本來應該寫成$id==13
。那些編寫爲13==$id
的人不必處理這個問題,因爲當他們忘記=
它變成13=$id
這是一個語法錯誤。這種方式幾乎不可能檢測到這種錯誤。
變量被切換,第二個變量在右括號之前有一個空格。 – 2012-04-04 05:53:22
第一種方法是簡單地獲取比較值的方法 - 幫助開發人員快速解析代碼的含義,這對較長的行很有幫助。 – halfer 2012-04-04 05:59:51