目前,每當我試圖確定當一個變量沒有定義我使用的代碼Determing空值,最好的方式做到這一點
如果($變量==「」)
但是我有已經告訴人們使用的功能
如果(空($變量))
這一讀,如果該值是0返回false,和我有很多數組值是零那不能是返回false。我總是可以添加|| $變量== 0)來跳過這個。
但我所問的是爲什麼這是一個確定空變量的首選方法,它是效率還是有更多的呢?
目前,每當我試圖確定當一個變量沒有定義我使用的代碼Determing空值,最好的方式做到這一點
如果($變量==「」)
但是我有已經告訴人們使用的功能
如果(空($變量))
這一讀,如果該值是0返回false,和我有很多數組值是零那不能是返回false。我總是可以添加|| $變量== 0)來跳過這個。
但我所問的是爲什麼這是一個確定空變量的首選方法,它是效率還是有更多的呢?
如果你需要知道,使用嚴格的類型比較:
if (empty($variable) && $variable !== 0) // !== instead of !=
一般來說,你應該使用isset()
- 如果變量尚未定義,則返回false:
$a = 4;
echo isset($a) ? 'a' : 'no a'; // a
echo isset($b) ? 'b' : 'not to b'; // not to b
沒問題isset實際上對於我所要求的更有意義,這仍然讓我想知道,使用isset或empty的實際推理對if($ var ==「」)是有利的,因爲這會導致代碼運行正常 – JimmyBanks 2012-02-11 02:18:57
如果變量尚未設置,則取決於PHP的配置方式,它可能會繼續愉快地運行,或者可能會出錯並停止。如果它繼續下去,則需要**顯着更長的時間來嘗試從尚不存在的變量讀取(閱讀:通常不值得關心)。使用'isset()'的主要原因是因爲它是**正確的方法**來檢查:P哦,以及致命的錯誤。這也是一個很大的問題。 – Joe 2012-02-11 02:21:58
好,所以它的主要效率,我從來沒有收到它的錯誤信息,我有錯誤信息。生病開始我的代碼切換到正確的使用,謝謝。 – JimmyBanks 2012-02-11 02:47:24
這一切都取決於您的需求。 isset()和empty()是使用的主要方法。 – Brad 2012-02-11 02:12:56
爲什麼這些方法優先於if($ var ==「」)的簡單if語句? – JimmyBanks 2012-02-11 02:13:59