【发布时间】:2023-03-18 17:53:01
【问题描述】:
Input:
<?php
$instance = new SimpleClass();
$assigned = $instance;
$reference =& $instance;
$instance->var = '$assigned will have this value';
$instance = null; // $instance and $reference become null
var_dump($instance);
var_dump($reference);
var_dump($assigned);
?>
Output:
NULL
NULL
object(SimpleClass)#1 (1) {
["var"]=>
string(30) "$assigned will have this value"
}
链接:http://php.net/manual/en/language.oop5.basic.php
请给出足够的解释。为什么 $assigned 最后给出了那个输出。
【问题讨论】:
-
让我们从您认为它不应显示的原因开始,我们可以尝试帮助您理解。
-
因为
$assigned指向的内存块与$instance,$reference指向的内存块不同。清洁一个块不会清洁另一个。
标签: php