PHP中empty,isset,is_null用法和區別詳解

來源:互聯網
上載者:User
最近在閱讀項目的源碼,發現源碼中就對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


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


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.