我在做一個教程,和誰寫它不斷使用像
if (empty($_POST) === false)
代碼爲什麼你不直接使用
if(!empty($_POST))
這是我有遺漏的原因嗎?使用第一種方法而不是第二種方法似乎不必要地混淆。
謝謝!
我在做一個教程,和誰寫它不斷使用像
if (empty($_POST) === false)
代碼爲什麼你不直接使用
if(!empty($_POST))
這是我有遺漏的原因嗎?使用第一種方法而不是第二種方法似乎不必要地混淆。
謝謝!
===強制執行類型檢查。
例如
if(false == 0)//evaluates to true
if(false === 0)//evaluates to false
在你上面的例子,只是做!空()是一樣的做==(當然,技術上!=)
那麼,我們如何解釋? 0可以表示值0,也可以表示爲false,因爲傳統上0位表示假(1表示真,儘管現在任何非0都被視爲真)。用PHP這樣的動態類型語言遇到的問題是,沒有對兩個參數進行隱式類型檢查,因此您可以將布爾值與數字進行比較,並在應該爲false的情況下獲得真實結果。
的strpos()功能在PHP是在哪裏,這是重要的
你可以只使用
if ($_POST) { ...
但它使沒有太大意義。
如果你想從_POST
中提取東西 - 檢查是否存在特定的密鑰。只知道post is not empty
根本沒有幫助。
@downvoter:謹慎解釋? – zerkms
我認爲這是因爲你的解釋是有效的,但並沒有真正回答爲什麼教程是這樣做的問題。我不會downvote,雖然 – Zarathuztra
恩,是的,什麼是downvote? – mario
考慮到empty返回boolean
一個很好的例子,它使,從字面上看,沒有什麼不同。聽起來像某人正在過度完善。
那麼我是否正確地認爲我應該儘可能使用===?因爲這是一個更嚴格的檢查? – hyphen
這取決於你。它增加了開銷,但如果正確使用它並不是什麼大不了的事情。 – Zarathuztra
@hyphen:在php中,如果你使用'===',它會讓更多的讀者花費另一個時間思考**爲什麼**它被用在這個特定的地方。所以不要使用'===',除非它是你需要的東西。 – zerkms