php中函數 isset(), empty(), is_null() 的區別

      網友投稿 972 2025-03-31

      NULL:


      當你在你的腳本中寫下這樣一行代碼

      $myvariable; //此處你想定義一個變量,但未賦值。會有Notice: Undefined variable

      echo $myvariable + 3; //使用這個變量出現:Notice: Undefined variable: myvariable in

      如果將其改寫成:

      $myvariable = NULL;

      echo $myvariable + 3; //這樣就不會有問題了

      所以得出在你的腳本在使用一個變量時最好賦一個默認值,如果你不想,就可以將NULL賦給變量,表示這個變量已經定義但沒有值,屬于NULL類型。

      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

      isset():

      bool isset ( mixed $var [, mixed $... ] ),參數是一個變量

      檢測參數已設定,并且不是NULL。如果沒有設置變量,變量未賦值,或變量被設為NULL,isset()函數就返回NULL。

      正好和is_null()函數相反,is_null()為TRUE的情況在isset()中就為FALSE。有意思!

      如果傳遞多個參數,將取交集。即所有參數全部符合 isset() 時才返回 TRUE。

      似乎讓人感覺有點困惑,來看一些例子:

      $myvar = NULL; isset($myvar); // FALSE 當一個變量被賦值為NULL時,就表示這個變量沒有值

      $myvar = 0; isset($myvar); // TRUE

      $myvar = FALSE; isset($myvar); // TRUE

      $myvar = ''; isset($myvar); // TRUE

      isset($some_undefined_var); // FALSE Undefined variable

      可以看出isset()著重檢測一個 變量是否設置和這個變量是否有具體的值,當變量滿足這兩種情況時isset()返回TRUE

      php中函數 isset(), empty(), is_null() 的區別

      defined():

      bool defined ( string $name )

      檢測是否設置常量

      empty():

      bool empty ( mixed $var )

      判讀變量是否為空。

      請見上面的類型比較表empty()那一列你就明白哪些情況是空的情形了。還有其他一些函數的參照。

      來看一些例子:

      $myvar = NULL; empty($myvar); // TRUE

      $myvar = 0; empty($myvar); // TRUE

      $myvar = FALSE; empty($myvar); // TRUE

      $myvar = ''; empty($myvar); // TRUE

      empty($some_undefined_var); // TRUE

      empty()為TRUE的情況,若變量不存在,或者變量存在且其值為""、0、"0"、NULL、FALSE、array()、var $var; 以及沒有任何屬性的對象,則返回 TURE。

      一般如!empty()的判斷,就是變量存在,且值不為""、0、"0"、NULL、FALSE、array()以及只是單純定義一個變量$var。

      原文:https://blog.csdn.net/jiaobuchong/article/details/41807011

      補充:

      if (isset($_GET['reply_id'] && $_GET['reply_user'])) {

      報錯:Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead) in line 42改為這樣:

      if ( isset($_GET['reply_id'], $_GET['reply_user']) ) {

      // code here

      }

      當$a,$b都為true時,才為TRUE;

      PHP

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:制造型企業生產管理(制造型企業生產管理方案)
      下一篇:《MySQL必懂系列》全局鎖、表級鎖、行鎖
      相關文章
      亚洲视频免费观看| 亚洲精品美女视频| 亚洲欧美日韩中文字幕一区二区三区| 91精品国产亚洲爽啪在线观看| 亚洲成在人线av| 国产亚洲免费的视频看| 亚洲一区爱区精品无码| 亚洲人成77777在线播放网站| 在线精品亚洲一区二区小说| 国产亚洲美日韩AV中文字幕无码成人 | 久久狠狠爱亚洲综合影院| 亚洲一区在线视频观看| 亚洲乱码一二三四五六区| 亚洲va精品中文字幕| 亚洲国产日韩精品| 亚洲日韩一中文字暮| 亚洲AV综合永久无码精品天堂| 亚洲av纯肉无码精品动漫| 午夜亚洲av永久无码精品| 男人的天堂亚洲一区二区三区 | 爱情岛论坛网亚洲品质自拍| 亚洲无码视频在线| 中文字幕亚洲图片| 久久久久久a亚洲欧洲aⅴ| 亚洲成熟xxxxx电影| 久久亚洲sm情趣捆绑调教| 91嫩草亚洲精品| 亚洲中文字幕久久无码| 亚洲国产精品精华液| 亚洲?v女人的天堂在线观看| 久久亚洲国产精品123区| 亚洲日韩精品无码专区网址 | 亚洲国产成人片在线观看| 亚洲永久永久永久永久永久精品| 亚洲国产精品一区| 亚洲国产日韩女人aaaaaa毛片在线| 亚洲一卡2卡3卡4卡乱码 在线| 亚洲AV色欲色欲WWW| 亚洲午夜精品一级在线播放放| 亚洲精品乱码久久久久久自慰| 亚洲激情在线观看|