2011-08-31 58 views
6

哪个更好?我应该使用空()PHP函数

if (!empty($val)) { // do something } 

if ($val) { // do something } 

当我在PHP 5测试它,所有的情况下产生同样的结果。那么PHP 4怎么样,或者有什么想法哪种方式更好?

+0

http://php.net/manual/en/types.comparisons.php – Mike

回答

16

当您不确定变量是否存在时,您应该使用empty()结构。如果该变量预计将被设置,请改为使用if ($var)

empty()相当于!isset($var) || $var == false。如果变量是它returns真:

  • ""(空字符串)
  • 0(0作为整数)
  • 0.0(0为float)
  • "0"(0作为字符串)
  • NULL
  • FALSE
  • array()(空数组)
  • var $var;(变量声明,但没有在一个类中的值)
+1

真的吗?我不认为它是这样工作的。在运行empty()之前,我总是必须运行isset()。但我只是试了一下,它似乎在PHP 5.3中工作得很好。那么你每天都会学到新的东西。谢谢! – pthurmond

0

阅读manual

空()是(布尔值)变种的相对,除了未设置变量时生成的警告是 。

相关问题