如何在 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;
这将使$var
null,等价于false
、0
等等。您仍然可以从$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