<?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 のマニュアルには、「既に作成されたクラスのインスタンスを新しい変数に割り当てると、新しい変数は、割り当てられたオブジェクトと同じインスタンスにアクセスします。この動作は、インスタンスをに渡す場合と同じです。機能。 "
誰でも説明できますか?