2013-12-11 52 views
0

我在做一個教程,和誰寫它不斷使用像

if (empty($_POST) === false) 

代碼爲什麼你不直接使用

if(!empty($_POST)) 

這是我有遺漏的原因嗎?使用第一種方法而不是第二種方法似乎不必要地混淆。

謝謝!

回答

2

===強制執行類型檢查。

例如

if(false == 0)//evaluates to true 

if(false === 0)//evaluates to false 

在你上面的例子,只是做!空()是一樣的做==(當然,技術上!=)

那麼,我們如何解釋? 0可以表示值0,也可以表示爲false,因爲傳統上0位表示假(1表示真,儘管現在任何非0都被視爲真)。用PHP這樣的動態類型語言遇到的問題是,沒有對兩個參數進行隱式類型檢查,因此您可以將布爾值與數字進行比較,並在應該爲false的情況下獲得真實結果。

strpos()功能在PHP是在哪裏,這是重要的

+0

那麼我是否正確地認爲我應該儘可能使用===?因爲這是一個更嚴格的檢查? – hyphen

+0

這取決於你。它增加了開銷,但如果正確使用它並不是什麼大不了的事情。 – Zarathuztra

+0

@hyphen:在php中,如果你使用'===',它會讓更多的讀者花費另一個時間思考**爲什麼**它被用在這個特定的地方。所以不要使用'===',除非它是你需要的東西。 – zerkms

0

你可以只使用

if ($_POST) { ... 

但它使沒有太大意義。

如果你想從_POST中提取東西 - 檢查是否存在特定的密鑰。只知道post is not empty根本沒有幫助。

+1

@downvoter:謹慎解釋? – zerkms

+0

我認爲這是因爲你的解釋是有效的,但並沒有真正回答爲什麼教程是這樣做的問題。我不會downvote,雖然 – Zarathuztra

+0

恩,是的,什麼是downvote? – mario

1

考慮到empty返回boolean一個很好的例子,它使,從字面上看,沒有什麼不同。聽起來像某人正在過度完善。