ホームページ  >  記事  >  バックエンド開発  >  PHP5のオブジェクト割り当て機構の紹介_PHPチュートリアル

PHP5のオブジェクト割り当て機構の紹介_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:26:03823ブラウズ

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

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

http://www.bkjia.com/PHPjc/324059.html技術記事次のようにコードをコピーします。 ?php class SimpleClass{ public $var = 'a default value'; public function displayVar() { echo $this-var; } $instance = new SimpleClass();
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。