PHP中empty,isset,is_null用法和區(qū)別
1.empty用法
bool empty ( mixed var)
如果 var 是非空或非零的值,則 empty() 返回 FALSE。換句話說,""、0、"0"、NULL、FALSE、array()、var $var; 以及沒有任何屬性的對象都將被認(rèn)為是空的,如果 var 為空,則返回 TRUE
2.isset()
isset -- 檢測變量是否設(shè)置
描述
bool isset ( mixed var [, mixed var [, ...]])
如果 var 存在則返回 TRUE,否則返回 FALSE。
如果已經(jīng)使用 unset() 釋放了一個變量之后,它將不再是 isset()。若使用 isset() 測試一個被設(shè)置成 NULL 的變量,將返回 FALSE。同時要注意的是一個 NULL 字節(jié)("0")并不等同于 PHP 的 NULL 常數(shù)。
注意:如果變量不存在,isset()和empty()都不會報(bào)錯;is_null(),is_numeric()會報(bào)錯
如何區(qū)別如下數(shù)組中 [0,'',null] 三個元素?(1)區(qū)別0:
$a = 0; isset($a) && is_numeric($a) === true
(2)區(qū)別''
$a = ''; empty($a) && $a=== ''
(3)區(qū)別null
$a = null; is_null($a);
另外在做表單提交的時候可能經(jīng)常要檢測一個變量是否存在,假如$_REQUEST['status'] = 0;使用empty($_REQUEST['status'])返回true,但是使用isset($_REQUEST['status']) 判斷就不是空
3. is_null():
bool is_null ( mixed $var ) (php.net官方文檔的函數(shù)定義)
當(dāng)參數(shù)滿足下面三種情況時,is_null()將返回TRUE,其它的情況就是FALSE
1、它被賦值為NULL
2、它還沒有賦值
3、它未定義,相當(dāng)于unset(),將一個變量unset()后,不就是沒有定義嗎
讓我們來看一些例子:
$myvar = NULL; var_dump(is_null($myvar)); // TRUE $myvar1; var_dump(is_null($myvar1)); // TRUE Notice: Undefined variable $num = 520; unset($num); var_dump(is_null($num)); //TRUE Notice: Undefined variable var_dump(is_null($some_undefined_var)); //TRUE Notice: Undefined variable $myvar = 0; is_null($myvar); // FALSE $myvar = FALSE; is_null($myvar); // FALSE $myvar = ''; is_null($myvar); // FALSE
相關(guān)文章
PHP入門教程之會話控制技巧(cookie與session)
這篇文章主要介紹了PHP入門教程之會話控制技巧,結(jié)合實(shí)例形式分析了cookie與session的具體使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-09-09php中require和require_once的區(qū)別說明
本篇文章主要是對php中require和require_once的區(qū)別進(jìn)行了說明介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02Linux系統(tǒng)下php獲得系統(tǒng)分區(qū)信息的方法
這篇文章主要介紹了Linux系統(tǒng)下php獲得系統(tǒng)分區(qū)信息的方法,涉及Linux下php系統(tǒng)分析的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03PHP針對偽靜態(tài)的注入總結(jié)【附asp與Python相關(guān)代碼】
這篇文章主要介紹了PHP針對偽靜態(tài)的注入,結(jié)合實(shí)例形式總結(jié)分析了php針對偽靜態(tài)的常見注入情況,并附帶asp與Python的相關(guān)操作代碼,對于php程序安全有一定借鑒價值,需要的朋友可以參考下2017-08-08