【问题标题】:What is different between isset() and !empty [duplicate]isset() 和 !empty 有什么不同 [重复]
【发布时间】:2015-02-02 15:28:31
【问题描述】:

我想知道isset()!empty有什么不同?

我知道isset() 测试变量是否已设置且不为空,而 empty() 可以在变量设置为特定值时返回 true。

但从逻辑上讲,当isset() 不为空时(不使用“empty()”),text 或 textarea 中有一个变量,因此我们不需要empty()

【问题讨论】:

  • foo = "" 将使 isset() 返回 true,但 !empty 将返回 false。变量 foo 被设置为空,但它仍然被设置。它没有内容,所以 !empty 将返回 false。
  • 我还会向您指出这些函数的 PHP 文档。他们应该非常清楚不同的变量类型/值如何响应每个函数。
  • 这段代码很棘手<? $a = 0; if(empty($a)){ echo"EMPTY"; } if(isset($a)){ echo"EMPTY"; } ?> 变量 a 已设置,但它是空的,就像 empty 看到的那样。您可以使用正则表达式“^$”(空)来测试这样的东西。

标签: php


【解决方案1】:

isset 方法检查变量是否存在。另一方面,!empty 知道变量存在,但需要检查其值。

【讨论】:

    【解决方案2】:

    差异很小,但足够重要,不会在两种陈述中都犯错误。当你像这样声明一个变量时:

    <?php
        foo = "";
    ?>
    

    根据您使用的内容,您最终会得到不同的值。 isset() 将返回 true,因为变量 foo 被设置为空。但是!empty 将返回 false,因为变量 foo 不包含任何内容。基本上isset() 只检查 NULL 值,其中!empty 检查被认为是 0 的所有内容(例如 NULL、0、0.0 等,但也可以将 0 作为字符串)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-03
      • 2011-06-01
      • 1970-01-01
      • 2014-01-02
      • 1970-01-01
      • 1970-01-01
      • 2017-10-20
      相关资源
      最近更新 更多