【问题标题】:check if variable empty检查变量是否为空
【发布时间】:2012-02-05 08:22:02
【问题描述】:
if ($user_id == NULL || $user_name == NULL || $user_logged == NULL) {
    $user_id = '-1';
    $user_name = NULL;
    $user_logged = NULL;
}
if ($user_admin == NULL) {
    $user_admin = NULL;
}
  1. 有什么最短的方法吗?
  2. 如果我是对的,应该使用is_null 进行测试?
  3. 有可能$user_id$user_name$user_logged 写在一行(可能是数组?)而不重复NULL

【问题讨论】:

标签: php if-statement null


【解决方案1】:

如果你想测试一个变量是否是真的 NULL,使用身份运算符:

$user_id === NULL  // FALSE == NULL is true, FALSE === NULL is false
is_null($user_id)

如果要检查变量是否未设置:

!isset($user_id)

或者如果变量不为空,则为空字符串,零,..:

empty($user_id)

如果你想测试一个变量是否不是空字符串,! 也足够了:

!$user_id

【讨论】:

  • 还要注意isset() 接受无限数量的参数。
  • 另请注意,因为他使用上面的== 而不是===,所以实际上正在做的只是if (!$var || !$var ...
  • 是的,文档位于:issetis_nullempty。从代码来看,我假设变量必须是一个字符串。所以,我推荐:if (!is_string($user_id) || $user_id === '').
【解决方案2】:

empty() 稍微短一些,作为检查 !$user_id 的替代方法,如其他地方建议的那样:

if (empty($user_id) || empty($user_name) || empty($user_logged)) {
}

【讨论】:

    【解决方案3】:

    您可以通过多种方式检查它是否未设置(或为空)。

    if (!$var){ }
    

    或者:

    if ($var === null){ } // This checks if the variable, by type, IS null.
    

    或者:

    if (empty($var)){ }
    

    您可以检查它是否声明为:

    if (!isset($var)){ }
    

    请注意,PHP 将 0(整数)和“”(空字符串)和 false 解释为“空” - 尽管是不同的类型,但这些特定值被 PHP 认为是相同的。 $var 是否从未设置/声明或者它是否被声明为 $var = 0 或 $var = "" 都没有关系。因此,您经常使用 === 运算符进行比较,该运算符根据数据类型进行比较。如果 $var 为 0(整数),则 $var == "" 或 $var == false 将生效,但 $var === "" 或 $var === false 不会。

    【讨论】:

    • !isset($var) 检查变量是否未定义,不检查是否为空。
    【解决方案4】:

    1.

    if(!($user_id || $user_name || $user_logged)){
        //do your stuff
    }
    

    2 。不。我实际上不明白你为什么要写这样一个结构。

    3 .将所有值放入数组中,例如$ar["user_id"]等

    【讨论】:

      【解决方案5】:

      请定义“空”的含义。

      我通常使用的测试是isset()

      【讨论】:

      • @micha 因此我的第一行 - “空”有点模棱两可。
      • isset 在大多数情况下都很糟糕。
      【解决方案6】:

      你可以使用 isset() 例程。

      您还可以参考一系列 is_type () 函数,例如

      is_string()、is_float()、is_int() 等进一步具体测试

      【讨论】:

        【解决方案7】:

        在 PHP 中检查变量是否为空的最好和最简单的方法就是使用 empty() 函数。

        如果为空($变量) 然后 ....

        【讨论】:

          【解决方案8】:
          <?php
          
          $nothing = NULL;
          $something = '';
          $array = array(1,2,3);
          
          // Create a function that checks if a variable is set or empty, and display "$variable_name is SET|EMPTY"
          function  check($var) {
              if (isset($var)) {
                  echo 'Variable is SET'. PHP_EOL;
            } elseif (empty($var)) { 
                  echo 'Variable is empty' . PHP_EOL;
          
             } 
          
          } 
          
          check($nothing);
          check($something);
          check($array);
          

          【讨论】:

          • 为您的答案提供详细信息。
          【解决方案9】:

          这里我已经解释了空函数和 isset 是如何工作的,请使用合适的,你也可以使用 is_null 函数

          <?php
              $val = 0;
              //evaluates to true because $var is empty
              if (empty($val)) {
                  echo '$val is either 0, empty, or not set at all';
              }
              //evaluates to true because $VAR IS SET
              if (isset($val)) {
                  echo '$val is set even though it is empty';
              }
              ?>
          

          【讨论】:

            【解决方案10】:

            值得注意的是——我在 PHP 编码近 9 年后才发现,检查任何变量是否存在的最佳方法是使用 empty() 函数。这是因为它不会产生错误,即使你关闭它们 - PHP 仍然会产生它们!但是,如果变量不存在,empty() 将不会返回错误。所以我相信正确的答案不是检查它是否为空,而是执行以下操作

            if (!empty($var) && is_null($var))
            

            注意PHP手册

            如果变量不存在或它的值等于 FALSE,则认为该变量为空

            而不是在这里很方便的 null!

            【讨论】:

              【解决方案11】:

              因为其他回答,我不得不回答这个问题。如果可以,请使用 empty(),因为它涵盖了更多的基础。未来你会感谢我的。

              例如,您必须执行诸如 isset() && strlen() 之类的操作,而您可以使用 empty()。把它想象成这个空就像 !isset($var) || $var==false

              【讨论】:

                【解决方案12】:

                要检查空值,您可以使用is_null(),如下所示。

                if (is_null($value)) {
                   $value = "MY TEXT"; //define to suit
                }
                

                【讨论】:

                  猜你喜欢
                  • 2011-03-20
                  • 2021-05-12
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多