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