首頁 >後端開發 >php教程 >PHP中empty,isset,is_null用法與差異詳解

PHP中empty,isset,is_null用法與差異詳解

墨辰丷
墨辰丷原創
2018-05-25 11:07:521904瀏覽

最近在閱讀專案的原始碼,發現原始碼就對empty、isset和is_null函數(語言特性)亂用,有的地方很明顯的就挖坑了。不能正確的去理解這些東西,就很可能給後續的開發挖坑了。

1.empty用法

bool empty ( mixed var)
如果var 是非空或非零的值,則empty() 傳回FALSE 。換句話說,""、0、"0"、NULL、FALSE、array()、var $var; 以及沒有任何屬性的物件都會被視為空的,如果var 為空,則傳回TRUE

#2.isset()

isset -- 偵測變數是否設定

描述
bool isset ( mixed var [, mixed var [, ...]])
如果var 存在則回傳TRUE,否則回傳FALSE。
如果已經使用 unset() 釋放了一個變數之後,它將不再是 isset()。若使用 isset() 測試一個被設定成 NULL 的變量,將會傳回 FALSE。同時要注意的是一個 NULL 位元組("0")並不等同於 PHP 的 NULL 常數。

注意:如果變數不存在,isset()和empty()都不會報錯誤;is_null(),is_numeric()會報錯誤

如何區別如下數組中[0,'' ,null] 三個元素? (1)區別0:

$a = 0;
isset($a) && is_numeric($a) === true

(2)區別''

##

$a = '';
empty($a) && $a=== ''

(3)區別null

$a = null;
is_null($a);

另外在做表單提交的時候可能經常要偵測一個變數是否存在,假如​​$_REQUEST['status'] = 0 ;使用empty($_REQUEST['status'])回傳true,但是使用isset($_REQUEST['status']) 判斷就不是空

3. is_null():

bool is_null ( mixed $var )   (php.net官方文件的函數定義)

當參數符合下列三種情況時,is_null()會傳回TRUE,它的情況是FALSE
1、它被賦值為NULL
2、它還沒有賦值
3、它未定義,相當於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


#以上就是本文的全部內容,希望對大家的學習有幫助。


相關推薦:

PHP isset()與empty()的使用差異

php中isset與empty的區別詳解

php效能最佳化:isset( )比strlen()更快

#

以上是PHP中empty,isset,is_null用法與差異詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn