在php的官方手冊中寫道,
檢查乙個變數是否為空。
如果 var 是非空或非零的值,則 empty() 返回 false。換句話說,""、0、"0"、null、false、array()、var $var; 以及沒有任何屬性的物件都將被認為是空的,如果 var 為空,則返回 true。
隨後在其手冊中鄭重說明了,
empty() 只檢測變數,檢測任何非變數的東西都將導致解析錯誤。換句話說,後邊的語句將不會起作用: empty(addslashes($name))。
empty用來檢測變數是否為空,這在**程式設計中經常會使用到,比如,我們在前台頁面提交了使用者的使用者名稱,這時,我們需要判斷是否為空,如果為空的話,讓他重新提交,這時我們需要用到函式trim,即過濾掉兩邊的空格,然後用empty檢測。
[php]view plain
copy
if(emptyempty(trim(
$_get
['username'
]))
但是,當我們執行這段**的時候,卻報錯了。原因就在於「empty() 只檢測變數」,而trim返回的確實值,不是變數。所以empty執行到這兒的時候報錯了。修改方法也很簡單,第一種方法:
[php]view plain
copy
if(trim(
$_get
['username'
] == 』『)
第二種方法,增加中間變數:
[php]view plain
copy
$username
= trim(
$_get
['username'
]);
if(emptyempty(
$username
))
推薦的方法是,在專案中使用驗證框架來解決這個問題。
php容易被錯誤使用的empty函式
在php的官方手冊中寫道,檢查乙個變數是否為空。如果 var 是非空或非零的值,則 empty 返回 false。換句話說,0 0 null false array var var 以及沒有任何屬性的物件都將被認為是空的,如果 var 為空,則返回 true。隨後在其手冊中鄭重說明了,empty 只...
容易被PHP程式設計師忽視的幾個要點
前幾天就想好好整理上次遇到的問題,但是工作比較忙,就放到週末來寫吧。上次和同事溝通需求的時候,他給了一段他寫好了的 我執行的時候發現了幾個bug,都是由於程式不嚴謹,考慮不周到,在這裡寫下來,和有一定php開發基礎的朋友分享一下。1 foreach陣列一定先判斷型別 發現很多php程式設計師在for...
引用容易犯的錯誤。
由於物件a是個區域性物件,因此當函式物件func結束後,區域性物件a也就被刪除了。由於物件a消失了,所以func 函式返回的其實是乙個並不存在的物件的別名。用這個不存在的物件來呼叫該物件的函式get 該函式會返回乙個並不存在的物件的x成員。因此輸出乙個隨機數。如果這樣,那輸出就是23,為什麼?因為去...