溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP中empty、isset、is_null三者的區(qū)別是什么

發(fā)布時(shí)間:2021-01-27 16:54:26 來(lái)源:億速云 閱讀:142 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

PHP中empty、isset、is_null三者的區(qū)別是什么?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

1.empty用法

bool empty ( mixed var)
如果 var 是非空或非零的值,則 empty() 返回 FALSE。換句話說(shuō),""、0、"0"、NULL、FALSE、array()、var $var; 以及沒(méi)有任何屬性的對(duì)象都將被認(rèn)為是空的,如果 var 為空,則返回 TRUE

2.isset()

isset -- 檢測(cè)變量是否設(shè)置

描述
bool isset ( mixed var [, mixed var [, ...]])
如果 var 存在則返回 TRUE,否則返回 FALSE。
如果已經(jīng)使用 unset() 釋放了一個(gè)變量之后,它將不再是 isset()。若使用 isset() 測(cè)試一個(gè)被設(shè)置成 NULL 的變量,將返回 FALSE。同時(shí)要注意的是一個(gè) NULL 字節(jié)("0")并不等同于 PHP 的 NULL 常數(shù)。

注意:如果變量不存在,isset()和empty()都不會(huì)報(bào)錯(cuò);is_null(),is_numeric()會(huì)報(bào)錯(cuò)

如何區(qū)別如下數(shù)組中 [0,'',null] 三個(gè)元素?(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);

另外在做表單提交的時(shí)候可能經(jīng)常要檢測(cè)一個(gè)變量是否存在,假如$_REQUEST['status'] = 0;使用empty($_REQUEST['status'])返回true,但是使用isset($_REQUEST['status']) 判斷就不是空

3. is_null():

bool is_null ( mixed $var )   (php.net官方文檔的函數(shù)定義)
當(dāng)參數(shù)滿足下面三種情況時(shí),is_null()將返回TRUE,其它的情況就是FALSE
1、它被賦值為NULL
2、它還沒(méi)有賦值
3、它未定義,相當(dāng)于unset(),將一個(gè)變量unset()后,不就是沒(méi)有定義嗎
讓我們來(lái)看一些例子:

$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

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI