empty($ val)和!$ val之间有什么区别?

时间:2012-10-15 07:56:19

标签: php

如:

return empty(!$val);

和     return!$ val();

只做一个布尔条件,如:

if (!empty($val)) {}

if ($val) {}

3 个答案:

答案 0 :(得分:3)

来自manual for empty

  

确定变量是否为空。如果变量不存在或者其值等于FALSE,则该变量被视为空。如果变量不存在, empty()不会生成警告。

它避免了诸如$_GET['foo']之类的情况的错误,在这种情况下,您无法保证URL包含foo查询字符串参数。

答案 1 :(得分:3)

PHP doc非常明确。没有什么可补充的:

http://php.net/manual/en/function.empty.php

  

确定变量是否为空。变量是   如果它不存在或者其值等于FALSE则认为为空。   如果变量不存在,empty()不会生成警告。

  

以下内容被认为是空的:

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)

答案 2 :(得分:2)

从手册:

  

如果变量不存在,则不会生成警告。这意味着empty()基本上是!isset($ var)||的简洁等价物$ var == false。

换句话说,除了没有发出警告之外,它们完全相同。