[PHP]在PHP中isset、empty、is_null的使用差別

摘要:[PHP]在PHP中isset、empty、is_null的使用差別

[鐵人賽Day11]在PHP中isset、empty、is_null的使用差別
 
上一篇「[PHP]PHP簡易分頁實作」中,有提到說要用isset()來鋪今天的文章
但除了isset外,經常被拿來比較的還有empty跟is_null,那到底差別在哪呢,讓我們繼續看下去
 
首先,要來介紹
isset():檢查變數是否有設置
使用方法:isset($var);
 
empty():檢查變數是否為空值
使用方法:empty($var);
 
is_null():檢查變數是否為null
使用方法:is_null($var);
 
簡單來說,isset()檢查的是「變數」存不存在,而empty()檢查的是變數內的「值」是否為空
通常這兩個函數最容易弄混淆
 
然而,官方很貼心的整理了這三個函式在各種情況下會出現的情況,在以下網址
 
 
而筆者自己也實際測試了一下,有興趣的讀者可以複製到自己的環境底下去執行,程式碼如下;
「isset_empty.php」
<?php
    header("Content-Type:text/html; charset=utf-8");
   
    function check($value){
        if(isset($value)){
            echo "isset()判定值有設置<br />";
        }else{
            echo "isset()判定值未設置<br />";
        }
   
        if(empty($value)){
            echo "empty()判定未有值<br />";
        }else{
            echo "empty()判定有值<br />";
        }
       
        if(is_null($value)){
            echo "is_null()判定未有值<br />";
        }else{
            echo "is_null()判定有值<br />";
        }
    }
   
    echo "設定value1值為字串<hr />";
    $value1='test';
    check($value1);
   
    echo "<br />";
   
    echo "設定value1值為null<hr />";
    $value1=null;
    check($value1);
   
    echo "<br />";
   
    echo "設定value1值為空陣列<hr />";
    $value1=array();
    check($value1);
   
    echo "<br />";
   
    echo "註銷value1值<hr />";
    unset($value1);
    @check($value1);
   
    echo "<br />";
   
    echo "設定value1值為0<hr />";
    $value1="0";
    check($value1);
?>

 

輸出後結果如下圖所示: