<?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;
?>
任何人都可以幫忙嗎?以上代碼的輸出爲什麼是:PHP5 - 對象分配問題
NULL
NULL
object(SimpleClass)#1 (1) {
["var"]=>
string(30) "$assigned will have this value"
}
我可以理解爲NULL
和$instance
但$reference
怎麼來$assigned
不成了NULL
。 根據我在PHP 5中的理解,對象都是通過引用的,所以$assigned
也包含引用,在這種情況下它也應該變成NULL
。
除了我的理解,用PHP手冊編寫的內容是:「當將一個已經創建的類的實例分配給一個新的變量時,新的變量將訪問與分配的對象相同的實例,這種行爲是相同的當傳遞實例到一個函數。「
任何人都可以解釋?