有没有人对这种奇怪的PHP行为有解释?
基本上,我创建了一个变量$ number,而不是变量$num2
,这是$number
的引用。所以我认为他们将共享相同的内存位置。
但是当我取消设置$number
时,它仍然输出..,我想如果我会使用一些gc命令,它会清除它,因为它看起来像堆行为。但它仍然无法正常工作。 :P
function sum(&$var) {
$var++;
}
$number = 5;
$num2 = &$number;
sum($number);
echo $number; echo '<br>';
gc_enable();
gc_collect_cycles();
sleep(5);
unset($number);
echo $num2;
答案 0 :(得分:0)
在PHP中取消设置引用另一个变量的变量时(这是你的情况),它只是断开连接这些变量的链接,但仍然是第二个变量中的值。
这is described in the PHP docs。
$ mainVar =“你好!”;
$ linkedVar =&amp; $ mainVar;
未设置($ mainVar);
因此,即使$mainVar
未设置,$linkedVar
也会保留该值。