首頁 > 後端開發 > PHP問題 > 利用PHP如何檢查空值(4種方法)

利用PHP如何檢查空值(4種方法)

青灯夜游
發布: 2023-03-12 08:38:02
原創
7480 人瀏覽過

在先前的文章《PHP數組學習之怎麼去除空白或重複的元素》中,我們了解到可以利用empty()函數來判斷一個值是否為空。那麼PHP有哪些檢查空值的方法呢?這次我們就來了解幾種常用方法,有需要的可以了解一下~

今天本文的主題是:使用PHP檢測一個值是不是為空、是不是空值。好了,直接開始正題,以下跟大家介紹幾種常用方法。

方法1:使用empty()

empty功能:偵測變數是否為"空"

任何一個未初始化的變數、值為0 或false 或空字串"" 或null的變數、空數組、沒有任何屬性的對象,都會判斷為TRUE。

下面透過程式碼範例來具體看看:

<?php
$a = &#39;test&#39;;
$b = array(&#39;key1&#39; => &#39;value1&#39;);
$class = new stdClass();

var_dump(empty($c)); // 输出 bool(true)
var_dump(empty($b[&#39;key2&#39;])); // 输出 bool(true)
var_dump(empty($class)); // 输出 bool(false)
var_dump(empty($class->test->test)); // 输出 bool(true)


class EmptyClass{};
$empty_class = new EmptyClass();
var_dump(empty($empty_class));// 输出 bool(false)
?>
登入後複製

輸出結果:

利用PHP如何檢查空值(4種方法)

以下的變數會被empty認為是空的:

  • "" (空字串)

  • #0 (作為整數的0)

  • #0.0 (作為浮點數的0)

  • "0" (作為字串的0)

  • NULL

  • FALSE

  • array() (一個空數組)

  • $var; (一個宣告了,但是沒有值的變數)

了解0 、'0' 、'' 、 null false這五種類型的差異。

  • null為不存在之意:php底層的zval空間沒有存其value值,只儲存了一個type標誌其 IS_NULL。

  • 0 、'0' 、'' 、 false這四個為存在,php底層是開闢zval空間存儲,有value,有type。

  • string '0'與string '' 不相等

  • int 0 卻和string '' 空相等,(非同類形比較, php會做型別轉換)

  • string '0' 與 null 不相等,int 0 與 null 相等

利用PHP如何檢查空值(4種方法)

##方法2:使用isset()

isset功能:判斷變數是否被初始化,可用來測試變數是否已經配置。若變數已存在則傳回 true 值;其它情形傳回 false 值。

下面透過程式碼範例來具體看看:

<?php
$a = &#39;test&#39;;
$b = array(&#39;key1&#39; => &#39;value1&#39;);
$class = new stdClass();

var_dump(isset($class->test->test)); // 判断对象属性是否定义:输出 bool(false)
var_dump(isset($a)); // 判断变量是否定义:输出 bool(true)
var_dump(isset($c)); // 判断变量是否定义:输出 bool(false)
var_dump(isset($b[&#39;key1&#39;])); // 判断数组元素是否定义:输出 bool(true)
var_dump(isset($b[&#39;key2&#39;])); // 判断数组元素是否定义:输出 bool(false)
?>
登入後複製

輸出結果:

利用PHP如何檢查空值(4種方法)

方法3:使用is_null()

    is_null功能:偵測變數是否為"null"。
  • 當變數被賦值為"null"時,偵測結果為true;0、空字串、false、空數組都偵測為false。 下面透過程式碼範例來具體看看:

    <?php
    $a = null;
    $b = false;
    var_dump(is_null($a));   
    var_dump(is_null($b));  
    var_dump(is_null($c)); 
    ?>
    登入後複製
  • 輸出結果:

方法4:利用==或===運算子

利用PHP如何檢查空值(4種方法)

    可以使用
  • var == null

    來判斷變數是否為"空"。當變數被賦值為"null"時,偵測結果為true;而0、空字串、false、空數組都偵測為false。如果變數未初始化時,程式將會報錯。

實質是 == 運算式會對兩邊的變數做自動型別轉換,所以判斷結果為 true。

利用PHP如何檢查空值(4種方法)

下面透過程式碼範例來具體看看:

<?php
$a = 0;
$b = array();
var_dump($a == null);   
var_dump($b == null);  
var_dump($c == null); 
?>
登入後複製

####可以使用###var === null ###來偵測變數是否為"null",同時變數的型別也必須是"null"。在判斷為"null"上,全等於和is_null的作用相同。 #########
<?php
$a = 0;
$b = false;
$c = 0.0;
$d = null;
$e = &#39;&#39;;
var_dump(0 === $a);   // 输出 bool(true)
var_dump(0 === $b);  // 输出 bool(false)
var_dump(0 === $c); // 输出 bool(false)
var_dump(0 === $d);  // 输出 bool(false)
var_dump(0 === $e);   // 输出 bool(false)
var_dump(&#39;&#39; === $e);  // 输出 bool(true)
var_dump(&#39;&#39; === $a);  // 输出 bool(false)
var_dump(&#39;&#39; === $b);  // 输出 bool(false)
var_dump(0.0 === $c);// 输出 bool(true)
var_dump(0.0 === $a);  // 输出 bool(false)
?>
登入後複製
############可以看出:使用=== 能夠很好的區分空字串,0,false和null,甚至連整形和浮點型都能區分。 ######好了就說到這裡了,有其他想知道的,可以點選這個喔。 → →###php影片教學#######

以上是利用PHP如何檢查空值(4種方法)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板