こちらPHPマニュアルの説明で分からない部分があります。
「new」に関する説明で、「作成済みのクラスのインスタンスを新たな変数に代入する場合、新しい変数は、 代入されたオブジェクトと同じインスタンスにアクセスします」とあります。同じインスタンスにアクセスしているとなると、以下のコード(PHPマニュアルより抜粋)の$assignedもnullとなると思うのですが、何故$assignedはnullとならず、「"$assigned will have this value"」こちらの値を保持したままとなっているのでしょうか?
php
1class SimpleClass 2{ 3 // プロパティの宣言 4 public $var = 'a default value'; 5 6 // メソッドの宣言 7 public function displayVar() { 8 echo $this->var; 9 } 10} 11$instance = new SimpleClass(); 12 13$assigned = $instance; 14$reference =& $instance; 15 16$instance->var = '$assigned will have this value'; 17 18$instance = null; // $instance と $reference は null になります 19 20var_dump($instance); 21var_dump($reference); 22var_dump($assigned); 23?> 24?> 25
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/25 13:30
退会済みユーザー
2019/05/26 07:31
2019/05/26 07:36