雖然記得,"empty()" 是檢測變數是否為空,"isset()"是檢測變數是否設定,但是有時候還是容易凌亂,看千遍不如自己寫一遍。
手冊中是這樣定義的
"empty
" 判斷乙個變數是否被認為是空的,當乙個變數並不存在,或者它的值等同於false,那麼它會被認為不存在。如果變數不存在的話,"empty"並不會產生警告。
「isset" 檢測變數是否設定,並且不是null。如果已經使用了 "unset" 釋放了乙個變數後,它將不再是 "isset()" 。若使用 "isset()" 測試乙個被設定成null的變數,將返回false。同時要注意的是乙個null位元組("\0")並不等同於php的null常數。
下面我們來**裡面看看
<?php
$a = null;
$b = 'null';
$c = 0;
$d = '0';
$e = '';
$f = ' ';
$g;$i = false;
$j = 'false';
echo '$a的型別是'.gettype($a).'
'; //$a的型別是null
echo '$b的型別是'.gettype($b).'
'; //$b的型別是string
echo '$c的型別是'.gettype($c).'
'; //$c的型別是integer
echo '$d的型別是'.gettype($d).'
'; //$d的型別是string
echo '$e的型別是'.gettype($e).'
'; //$e的型別是string
echo '$f的型別是'.gettype($f).'
'; //$f的型別是string
echo '$g的型別是'.gettype($g).'
'; //notice: undefined variable: g in e:\www\pdemo\demo6.php on line 17 $g的型別是null
echo '$i的型別是'.gettype($i).'
'; //$i的型別是boolean
echo '$j的型別是'.gettype($j).'
'; //$j的型別是string
echo "";
echo '$a isset()後的結果:';
var_dump(isset($a)); //$a isset()後的結果:bool(false)
echo '$b isset()後的結果:';
var_dump(isset($b)); //$b isset()後的結果:bool(true)
echo '$c isset()後的結果:';
var_dump(isset($c)); //$c isset()後的結果:bool(true)
echo '$d isset()後的結果:';
var_dump(isset($d)); //$d isset()後的結果:bool(true)
echo '$e isset()後的結果:';
var_dump(isset($e)); //$e isset()後的結果:bool(true)
echo '$f isset()後的結果:';
var_dump(isset($f)); //$f isset()後的結果:bool(true)
echo '$g isset()後的結果:';
var_dump(isset($g)); //$g isset()後的結果:bool(false)
echo '未定義變數isset()後的結果:';
var_dump(isset($h)); //未定義變數isset()後的結果:bool(false)
echo '$i isset()後的結果:';
var_dump(isset($i)); //$g isset()後的結果:bool(false)
echo '$j isset()後的結果:';
var_dump(isset($j)); //$g isset()後的結果:bool(false)
echo "";
echo '$a empty()後的結果:';
var_dump(empty($a)); //$a empty()後的結果:bool(true)
echo '$b empty()後的結果:';
var_dump(empty($b)); //$b empty()後的結果:bool(false)
echo '$c empty()後的結果:';
var_dump(empty($c)); //$c empty()後的結果:bool(true)
echo '$d empty()後的結果:';
var_dump(empty($d)); //$d empty()後的結果:bool(true)
echo '$e empty()後的結果:';
var_dump(empty($e)); //$e empty()後的結果:bool(true)
echo '$f empty()後的結果:';
var_dump(empty($f)); //$f empty()後的結果:bool(false)
echo '$g empty()後的結果:';
var_dump(empty($g)); //$g empty()後的結果:bool(true)
echo '未定義變數empty()後的結果:';
var_dump(empty($h)); //未定義變數empty()後的結果:bool(true)
echo '$i empty()後的結果:';
var_dump(empty($i)); //$g empty()後的結果:bool(true)
echo '$j empty()後的結果:';
var_dump(empty($j)); //$g empty()後的結果:bool(true)
執行結果如下圖所示:
看的出來, "isset()" 把值為null的null型別的和沒賦值的,沒定義的變數,認為是空,返回false; 」empty()「 把 值為null的null型別的,integer型別的0,字串型別的0,字串型別的 '' ,未定義的變數,布林型別的false,認為是空,返回true。不過有意思的是 『』判斷為空返回true,『 』卻判斷不為空,返回false。
結果就是這樣了,大家可以看看,或者執行下。
php中isset 和empty 區別
1 isset 用於檢測變數是否設定值 若變數不存在則返回 false 若變數存在且其值為null,也返回 false 若變數存在且值不為null,則返回 ture 同時檢查多個變數時,每個單項都符合上一條要求時才返回 true,否則結果為 false empty 用於檢測變數是否為空 若變數不存在...
php中isset和empty區別
php語言isset和empty的區別 empty 判斷乙個變數是否為 空 isset 判斷乙個變數是否已經設定。正是這種所謂的 顧名思義 令我開始時走了些彎路 1.當乙個變數值等於0時,empty 也會成立 true 因而會發生一些意外。原來,empty 和 isset 雖然都是變數處理函式,它們...
PHP中isset 和empty 的使用
若變數不存在則返回false 若變數存在且其值為null,也返回 false 若變數存在且值不為null,則返回 ture 同時檢查多個變數時,每個單項都符合上一條要求時才返回 true,否則結果為 false 使用 unset 釋放變數之後,它將不再是 isset php函式isset 只能用於變...