【问题标题】:How to reset a variable to NULL in PHP?如何在 PHP 中将变量重置为 NULL?
【发布时间】:2010-12-23 16:21:17
【问题描述】:

我可以使用isset($var) 来检查变量是否未定义或为空。 (例如,检查之前是否设置过会话变量)

但设置变量后,如何将其重置为默认值,以使isset($var) 返回false

【问题讨论】:

    标签: php scripting variables


    【解决方案1】:

    从 php 7.2 开始,直接设置变量已被贬低。您不应该以这种方式使用它,而应该考虑使用 unset 。 https://www.php.net/manual/en/language.types.null.php

    unset($v); 在检查变量是否为空或未设置时会产生相同的错误。

    isset($v) === false 
    is_null($v) === false 
    

    【讨论】:

      【解决方案2】:

      进一步解释:

      虽然变量可以为空或不为空,但变量也可以说是已设置或未设置。

      要将变量设置为空,您只需

      $var = null;
      

      这将使$varnull,等价于false0等等。您仍然可以从$GLOBALS['var'] 获取变量,因为它仍然是定义/设置的。但是,要从全局和/或本地命名空间中删除变量,您可以使用

      unset($var);
      

      这将使$var 根本没有设置。您将无法在 $GLOBALS 中找到。

      【讨论】:

        【解决方案3】:

        正如 nacmartin 所说,unset 将“取消定义”一个变量。您也可以将变量设置为 null,但这就是这两种方法的不同之处:

        $x = 3; $y = 4;
        isset($x);  // true;
        isset($y);  // true;
        
        $x = null;
        unset($y);
        isset($x);  // false
        isset($y);  // false
        
        echo $x;  // null
        echo $y;  // PHP Notice (y not defined)
        

        【讨论】:

          【解决方案4】:

          另外,您可以将变量设置为null

          <?php
          
          $v= 'string';
          var_dump(isset($v));
          $v= null;
          var_dump(isset($v));
          
          ?>
          

          【讨论】:

          • 对于一个简单的$variable,将其设置为null 更适合我的目的。
          【解决方案5】:

          使用unset($var);

          【讨论】:

          • 这是否会删除引用垃圾也收集内存?
          猜你喜欢
          • 2016-01-13
          • 2014-10-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-21
          • 1970-01-01
          • 1970-01-01
          • 2020-08-28
          相关资源
          最近更新 更多