$a = null;
$b = false;
$c = true;
$d = array();
$e = '';
$f;
//case 1
echo ($a)? '[true]<br>' : '[false]<br>';
echo ($b)? '[true]<br>' : '[false]<br>';
echo ($c)? '[true]<br>' : '[false]<br>';
echo ($d)? '[true]<br>' : '[false]<br>';
echo ($e)? '[true]<br>' : '[false]<br>';
echo ($f)? '[true]<br>' : '[false]<br>';
//case 2
echo !empty($a)? '[true]<br>' : '[false]<br>';
echo !empty($b)? '[true]<br>' : '[false]<br>';
echo !empty($c)? '[true]<br>' : '[false]<br>';
echo !empty($d)? '[true]<br>' : '[false]<br>';
echo !empty($e)? '[true]<br>' : '[false]<br>';
echo !empty($f)? '[true]<br>' : '[false]<br>';
- 案例1的输出 -
[false]
[false]
[true]
[false]
[false]
Notice: Undefined variable: f in ... [false]
- 案例2的输出 -
[false]
[false]
[true]
[false]
[false]
[false]
结果似乎没有区别,是否需要使用empty()?
Guys THX。
我知道PHP的文档和与isset()的区别,因为我想清理我的代码,通知不会发生严重的错误,除此之外我只是想得到一些建议。
答案 0 :(得分:1)
empty
不会引发错误。另外empty
会在表达式上引发错误(在php5.5之前)。
Empty
相当于!isset($var) || $var == false
。因此!empty
相当于isset($var) && $var == true
或仅isset($var) && $var
。所以isset($var)
就是区别。