天天看點

php中0,空,null和false之間差別

php中0,空,null和false之間差別 :

$a =  0; 
$b="0"; 
$c= ''; 
$d= null; 
$e = false;

echo "5個變量-原始測試類型";
    var_dump($a);//int 0
    var_dump($b);//string '0'
    var_dump($c);//string ''
    var_dump($d);//null
    var_dump($e);//boolean false

echo "<h4>empty測試</h4>";
    var_dump(empty($a));//true
    var_dump(empty($b));//true
    var_dump(empty($c));//true
    var_dump(empty($d));//true
    var_dump(empty($e));//true

echo "<hr>";
    var_dump(isset($a));//true
    var_dump(isset($b));//true
    var_dump(isset($c));//true
    var_dump(isset($d));//【false】 見結論一
    var_dump(isset($e));//true

echo "<h4>(==)雙等式測試</h4>";
    var_dump($a == $b);//true
    var_dump($a == $c);//true
    var_dump($a == $d);//true
    var_dump($a == $e);//true !!

    var_dump($b == $c);//{false}//
    對于雙等号,我們要先進行類型轉化,
    這裡b、c都是string類型,0當然不等于空。
    var_dump($b == $d);//【false】見結論二
    var_dump($b == $e);//true

    var_dump($c == $d);//true
    var_dump($c == $e);//true

echo "<h4>(===)三等式測試</h4>";
    var_dump($a === $b);//false
    var_dump($a === $c);//false
    var_dump($a === $d);//false
    var_dump($a === $e);//false

    var_dump($b === $c);//false
    var_dump($b === $d);//false
    var_dump($b === $e);//false

    var_dump($c === $d);//false
    var_dump($c === $e);//false
           

解釋:

1.empty

傳回值

當 var 存在,并且是一個非空非零的值時傳回 FALSE 否則傳回 TRUE。

以下的變量會被認為是空的:

"" (空字元串)
    0 (作為整數的0)
    0.0 (作為浮點數的0)
    "0" (作為字元串的0)
    NULL
    FALSE
    array() (一個空數組)
    $var; (一個聲明了,但是沒有值的變量)
           

2.isset

PHP的isset()函數 一般用來檢測變量是否設定
    格式:bool isset ( mixed var [, mixed var [, ...]] )
    
    功能:檢測變量是否設定
    
    傳回值:
    
    若變量不存在則傳回 FALSE
    若變量存在且其值為NULL,也傳回 FALSE
    若變量存在且值不為NULL,則傳回 TURE 
           
php中0,空,null和false之間差別