使用空或不同之间的区别

时间:2014-08-07 05:03:08

标签: php

$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()的区别,因为我想清理我的代码,通知不会发生严重的错误,除此之外我只是想得到一些建议。

1 个答案:

答案 0 :(得分:1)

如果未定义变量,

empty不会引发错误。另外empty会在表达式上引发错误(在php5.5之前)。

Empty相当于!isset($var) || $var == false。因此!empty相当于isset($var) && $var == true或仅isset($var) && $var。所以isset($var)就是区别。

http://php.net/empty