有什麼優勢,寫一個PHP條件是這樣的:這些是PHP條件語句相同或沒有一個有優勢的
if ($variable != NULL) {
與
if (!empty($variable)) {
與
if ($variable) {
他們都不是一回事嗎?看起來最後總是最簡單的,如果你只是想知道變量是否存在。謝謝你幫我理解這裏的區別。我錯過了PHP 101的第一天。
有什麼優勢,寫一個PHP條件是這樣的:這些是PHP條件語句相同或沒有一個有優勢的
if ($variable != NULL) {
與
if (!empty($variable)) {
與
if ($variable) {
他們都不是一回事嗎?看起來最後總是最簡單的,如果你只是想知道變量是否存在。謝謝你幫我理解這裏的區別。我錯過了PHP 101的第一天。
我同意肖恩但我將概述什麼用簡單的英語做每個:
if ($variable != NULL) {
$variable
將NULL
,如果它沒有被設置。這實際上與isset
相同,並且與未定義的變量相同。
if (!empty($variable)) {
一般來說,此檢查$variable
作爲字符串((string) $variable
)是否具有0的一個strlen
然而true
將使它返回false
,也將是不爲0和空數組的整數。由於某種原因(我認爲是錯誤的)$variable = '0';
將返回true
。
if ($variable) {
這真/假支票的作用就像(boolean) $variable
- 時轉換成布爾變量基本上是否返回true。
考慮它的一種方式是它的行爲與空相同,但返回相反的值。
有關(boolean) $variable
(類型鑄造/雜耍)的更多信息,請參見manual page。
(PHP開發者:這主要是內存,如果我錯了,在這裏請大家指正!)
檢出this table以獲得PHP比較運算符的瘦身。 false,0,「」,NULL和變量之間存在許多簡單的不確定性。
我從來不知道那張桌子存在。謝謝! – matpie 2009-01-05 18:37:15
相關問題:Weak typing in PHP: why use isset at all?
基本上,空值打交道時,他們是不一樣的,空值,零和布爾值。
當嚴格錯誤模式(E_STRICT)上運行,該條款
if ($variable) {}
和
if ($variable != null) {}
將拋出聲明,當這些變量不會被初始化。
Notice: Undefined variable: variable
這些通知是代碼中的漏洞指標,因爲未初始化的使用是一個可能的安全漏洞。 (關鍵字:register_globals)。
我檢查變量的存在,最喜歡的是
if (isset($variable)) {}
此檢查,如果變量之前已使用(讀:用一個值初始化= NULL)。
NULL與undefined不同。 – 2009-01-05 21:41:34