2012-09-21 33 views
3

運行CodeSniffer PHP風格測試給了我以下錯誤:爲什麼應該使用is_null()?

The use of function is_null() is forbidden  
Squiz.PHP.ForbiddenFunctions.Found 

爲什麼要使用is_null的()被禁止?

+2

@ think123然後簡單地不要高舉。這甚至不是一個壞問題。消極的是什麼? – deceze

回答

7

爲了保持一致性,我們在Squiz標準中實施了此規則。

該標準的另一部分禁止隱含表達式,例如if ($var) {...。所以你需要寫if ($var === TRUE) {...

由於這個原因,一個NULL值的比較是這樣的:

if (is_null($var) === TRUE) { 
} 

鑑於你已經寫的比較下半年的事實,更容易只寫:

if ($var === NULL) { 
} 

這種方式的代碼更簡單,但也更重要的是與我們做事的方式更一致。

這是唯一的原因。我們不關心性能,也沒有關於is_null()函數本身的任何問題。據我所知,它工作正常。

希望能回答你的問題。

+2

但不是'$ var === TRUE'的結果是另一個布爾值嗎?所以你應該寫'($ var === TRUE)=== TRUE'。等等,然後...... – maaartinus

+0

是的,結果是一個布爾值,這是一個點。 '$ var'本身可能不是布爾值,但是IF語句會將它轉換爲一個並解釋結果。使用'==='強制進行相等和類型檢查只是確保開發人員(包括編寫和讀取代碼)知道他們正在存儲和使用的值。 –

+0

我明白了......但你基本上重新定義了真值,'$ var === TRUE'與'$ var!== FALSE'有所不同,除非你能確定'$ var'是一個'boolean' 。我個人用另一種語言對它進行了糟糕的體驗。 – maaartinus

相關問題