如何在 PHP 中将变量重置为 NULL?

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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);

【讨论】:

这是否会删除引用垃圾也收集内存?

以上是关于如何在 PHP 中将变量重置为 NULL?的主要内容,如果未能解决你的问题,请参考以下文章

在primefaces autocomplete事件中将值重置为null

如何在php中将json数组值声明为变量

如何在 Linux 中将目录内容的用户和组重置为默认值?

如何在PHP中preg_match一个可以为NULL的变量?

表单提交后如何阻止变量重置?

如何在 CSS 中将颜色定义为变量?