PHP でオブジェクトを破棄する方法: 1. 構文 "$obj = null;" を使用してオブジェクト変数に NULL を割り当てます; 2. unset() 関数を使用して、構文 "unset( $obj);"。
このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
オブジェクトの破棄in PHP メソッド
メソッド 1: オブジェクト変数に NULL を代入する
オブジェクトが参照されない場合、オブジェクトは破棄されるため、値 NULL
例: このようなオブジェクトがあります:
<?php header("Content-type:text/html;charset=utf-8"); class Human { public $name = '张三'; public $gender = null; public function __destruct() { echo '走了!<br />'; } } $obj = new Human(); var_dump($obj); ?>
出力結果:
オブジェクトに NULL を割り当てます変数 $obj を使用してオブジェクトを破棄します
$obj = null; var_dump($obj);
出力結果:
方法 2: unset() 関数を使用してオブジェクトを破棄します
例 1:
<?php class Human { public $name = '张三'; public $gender = null; public function __destruct() { echo '走了!<br />'; } } $a = new Human(); $b = $c = $d = $a; unset($a); echo $b->name; //输出张三 echo '<hr />'; //先输出换行线再输出走了 析构函数是在线上触发还是线下触发? ?>
答え:
$b = $c = $d = $a;
デフォルトでは、4 つの変数は次のようになります。設定を解除すると、オブジェクトは残ります 他の 3 つの変数によって使用されるため、オブジェクトは破棄されず、デストラクタはオフラインでトリガーされます (メモリはコード実行後に自動的に解放されます)
例 2:
<?php class Human { public $name = '张三'; public $gender = null; public function __destruct() { echo '走了!<br />'; } } $e = $f = $g = new Human(); unset($e); unset($f); unset($g); echo '<hr />'; //同样的问题: 析构函数是在线上触发还是线下触发? ?>
コードの実行後にメモリが自動的に解放される前に、オブジェクトはどの変数からも参照されていないため、メモリは自動的に解放されます。答えは、オンラインでトリガーすることです
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHPでオブジェクトを破棄する方法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。