【问题标题】:What is the most bulletproof way of checking a variable is not null or empty?检查变量不为空或为空的最安全的方法是什么?
【发布时间】:2012-09-23 12:57:22
【问题描述】:

在 PHP 中,检查字符串变量是否为空或 null 的最佳方法是什么?

我目前有以下:

if($variable == null || $variable == "")
    exit;

想知道是否有更简约的方式来做到这一点?

提前致谢

【问题讨论】:

  • 你的意思是empty($var)
  • if (empty($variable)) { ... } 怎么样?
  • 别忘了:空 null 0

标签: php


【解决方案1】:

检查变量是否为空或空请参考下面的代码sn-p

    if(is_null($variable) || empty($variable))
    {
      exit;
    }

有关 is_null 和空函数的文档,请参阅以下网址 http://php.net/manual/en/function.is-null.php http://www.php.net/manual/en/function.empty.php

【讨论】:

    【解决方案2】:
    if (empty($variable))
        exit;
    

    如果您想明确测试变量是否设置为值null,也可以使用is_null()

    【讨论】:

    • Empty 做空检查,所以第二条语句永远不会被执行!
    • 请简单地删除is_null检查,因为初学者可能会阅读您的代码,但不会阅读您的评论。
    • @nkr -- 已删除。尽管如此,is_null() 仍然很有用,值得一提,以防有人不知道存在这样的功能。
    • @ScottS。我同意你的观点,但在这种情况下,最好直接提供正确的解决方案并稍后提供额外的提示,而不是先提供超出必要的内容,然后将其缩小到所需的功能。
    【解决方案3】:

    使用 empty() 见http://php.net/manual/en/function.empty.php

    if(empty($myvariable)) 
       exit();
    

    如果变量为 emptynull,则 Empty 返回 true,详情如下

    来自文档

    判断一个变量是否被认为是空的。如果变量不存在或其值等于 FALSE,则认为该变量为空。如果变量不存在,empty() 不会生成警告。

    如果 var 存在并且具有非空、非零值,则返回 FALSE。否则返回 TRUE。

    以下的东西被认为是(返回真):

    • “”(空字符串)
    • 0(0为整数)
    • 0.0(0 作为浮点数)
    • “0”(0作为字符串)
    • 错误
    • array()(一个空数组)
    • $var; (声明的变量,但没有值)

    【讨论】:

      【解决方案4】:

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

      以下内容被认为是空的:

      "" (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)
      

      【讨论】:

      • 请提供英文版。
      • 提示:PHP.net 支持函数名称的短链接,这些链接会自动重定向到访问者的本地语言。示例:php.net/empty
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-23
      • 1970-01-01
      • 2020-12-08
      • 2011-12-28
      • 2011-08-21
      • 2012-06-28
      相关资源
      最近更新 更多