コードをコピー コードは次のとおりです:
class SimpleClass{
public $var = 'デフォルト値 ';
public function displayVar() {
echo $this->var;
}
$instance = new SimpleClass(); $instance;
$reference =& $instance;
$instance->var = '$assigned はこの値になります';
$instance = null になります。 ($instance );var_dump($reference);var_dump($assigned);
var_dump($assigned);
var_dump($reference);
php5 は OOP の最下層を書き換えます。クラスがインスタンス (オブジェクト) を生成するとき、戻り値 $instance はオブジェクトそのものではなく、オブジェクトの ID (またはリソース ハンドル) にすぎません。したがって、$instance が $assigned に代入されると、$assigned も を指します。このオブジェクトは、通常の変数の参照 (&) 操作に少し似ています。したがって、$instance が初期化されると、$assigned も初期化されます。ただし、$instance が破棄される (=null) 場合、対応するオブジェクトにはまだハンドル ($assigned) があるため、オブジェクトは破棄されず、デストラクターはトリガーされません。結果として、var_dump($assigned) はオブジェクトの値であり、$instance はすでに空のハンドルであり、null を示しています。 $referenceは$instanceと通常の変数と同様の参照関係にあるため、やはり空のハンドルとなりnullが表示されます。