我应该使用empty() php函数吗

问题描述 投票:0回答:3

哪个更好?

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

if ($val) { // do something }

当我用 PHP 5 测试它时,所有情况都会产生相同的结果。 PHP 4 怎么样,或者知道哪种方法更好?

php
3个回答
29
投票

当您不确定变量是否存在时,应该使用

empty()
构造。如果需要设置变量,请使用
if ($var)
代替。

empty()
相当于
!isset($var) || $var == false
。如果变量是:,则返回

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

1
投票

我建议查看这篇文章。它阐明了为什么

empty
函数会导致错误,并且对于获得最佳结果代码来说并不是很好的做法:

  • 它测试存在性和非虚假值,作为读者,作者的意图并不明确
  • 它不传达变量的类型,看到空($value)并不能缩小什么值是足够的
  • 它隐藏了因传递给空的变量名中的拼写错误而导致的错误

0
投票

阅读手册

empty() 与 (boolean) var 相反,只是不发出警告 未设置变量时生成。

© www.soinside.com 2019 - 2024. All rights reserved.