isset()
:用于判断一个函数是否被设置过,如果设置过就为true,否则就为false,但是有一个例外,就是如果一个变量被设置成null的话,此时也会返回的也是false。
<?php
$a = null;
var_dump(isset($a));//a变量已赋值,但是被设置成null,故返回false
var_dump(isset($b));//内存中不存在变量b,故返回false
var_dump(isset($_GET['id']));//如果$_GET['id']变量不存在,则返回false;如果$_GET['id']存在,则返回true
?>
empty()
:用于判断一个变量是否为空,如果是整形的0,浮点型的0.0,字符型的' ‘和'0',还有布尔型的false,NULL型的null,空数组等
<?php
$a = null;
var_dump(empty($a));//true
$b = "";
var_dump(empty($b));//true
$c = "0";
var_dump(empty($c));//true
$d = 0;
var_dump(empty($d));//true
$e = false;
var_dump(empty($e));//true
$f = array();
var_dump(empty($f));//true
var_dump(empty($g));//$g变量不存在,返回true
var_dump(empty($_GET['id']));//如果$_GET['id']不存在,则返回true;如果存在,但是值是上述条件,则还是返回true。
?>
总结:如果是判断一个变量是否存在,可以用isset()
和empty()
;如果判断变量的值是否为空,那么就用empty()
。