ホームページ >php教程 >php手册 >PHP5のオブジェクト割り当て機構の紹介

PHP5のオブジェクト割り当て機構の紹介

WBOY
WBOYオリジナル
2016-06-13 12:06:411143ブラウズ

コードをコピー コードは次のとおりです:


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が表示されます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。