<?php
class SimpleClass
{
public $var1;
}
$instance = new SimpleClass();
$assigned = $instance;
$reference =& $instance;
$instance->var1 = '$assigned will have this value';
$instance = null; // $instance and $reference become null
var_dump($instance);
var_dump($reference);
var_dump($assigned);
exit;
?>
任何人都可以帮忙吗?上面代码的输出是怎么来的:
NULL
NULL
object(SimpleClass)#1 (1) {
["var"]=>
string(30) "$assigned will have this value"
}
我能理解NULL
,但是怎么没有变成。根据我在 PHP 5 中的理解,对象是通过引用传递的,所以也包含引用,在这种情况下它也应该变成.$instance
$reference
$assigned
NULL
$assigned
NULL
除了我的理解之外,PHP手册中写的是“将已经创建的类实例分配给新变量时,新变量将访问与分配的对象相同的实例。这种行为与将实例传递给一个函数。”
谁能解释一下?