php容易被錯誤使用的empty函式

2021-06-21 23:45:30 字數 995 閱讀 9314

在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,為什麼?因為去...