在php的官方手冊中寫道,
如果 var 是非空或非零的值,則 empty() 返回 FALSE。換句話說,""、0、"0"、NULL、FALSE、array()、var $var; 以及沒有任何屬性的對象都將被認爲是空的,如果 var 爲空,則返回 TRUE。
隨後在其手冊中鄭重說明了,
empty用來檢測變量是否爲空,這在網站編程中經常會使用到,比如,我們在前臺頁面提交了用戶的用戶名,這時,我們需要判斷是否爲空,如果爲空的話,讓他重新提交,這時我們需要用到函數trim,即過濾掉兩邊的空格,然後用empty檢測。
if (emptyempty(trim($_GET['username'])) { …}
但是,當我們運行這段代碼的時候,卻報錯了。原因就在於“empty() 只檢測變量”,而trim返回的確實值,不是變量。所以empty執行到這兒的時候報錯了。修改方法也很簡單,第一種方法:
if (trim($_GET['username'] == ’‘) { …}
第二種方法,增加中間變量:
$username = trim($_GET['username']);
if (emptyempty($username)) { …}
推薦的方法是,在項目中使用驗證框架來解決這個問題。