【发布时间】:2018-08-23 20:02:16
【问题描述】:
documentation for NULL 表示如果我在变量上调用unset(),该变量将变为 NULL:
如果满足以下条件,则认为变量为空
它已被分配了常量 NULL。
尚未设置任何值。
已取消设置()。
但是,tutorial 表示在变量上调用 unset() 时会发生以下情况:
PHP 在符号表中查找与 this 对应的 zval 变量,递减引用计数,并从 符号表。因为引用计数现在为零,垃圾收集器 知道没有办法访问这个 zval,并且可以释放 它占用的内存。
现在我尝试了以下代码:
<?php
$x = 12345;
unset($x);
echo gettype($x);
?>
我得到的输出很奇怪,我得到一个错误,说变量是未定义的(这与我发布的第二个引用一致),但我也得到了变量的类型是 NULL(这符合我发布的第一条报价):
为什么我得到这个奇怪的输出?
【问题讨论】:
-
因为你没有设置变量意味着它被完全销毁了。
标签: php