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