ホームページ  >  記事  >  バックエンド開発  >  PHP デストラクターとガベージ コレクション メカニズム

PHP デストラクターとガベージ コレクション メカニズム

WBOY
WBOYオリジナル
2016-07-25 08:53:50770ブラウズ
  1. class person{
  2. public function __destruct() {
  3. echo "
    デストラクタはここで実行されます"
  4. echo "
    これは一般的に使用される場所です、データベースを閉じる、ファイルを閉じるなど、作業を終了します ";
  5. }
  6. }
  7. $p = new person();
  8. for ($i = 0; $i echo "< ; br /> $i";
  9. }
  10. //オブジェクトは php プログラムが終了する前に破棄されます。
  11. ?>
コードをコピー

オブジェクトがポイントされていない場合、オブジェクトは破棄されます。

  1. class person {
  2. public function __destruct() {
  3. echo "
    デストラクタはここで実行されます"
  4. echo "
    ここで一般的に使用されます配置、データベースを閉じる、ファイルを閉じるなど。 ";
  5. }
  6. }
  7. $p = new person();
  8. $p = null;
  9. //ここでデストラクターが実行されていることがわかります。
  10. for ($i = 0; $i echo "
    $i"
  11. ?>
コードをコピー
Set $p Assign $p が空の場合、または 11 行目の場合は文字列。$p が指すオブジェクトはガベージ オブジェクトになります。 PHP はこのオブジェクトをガベージ破壊します。

変数の設定を解除する

    class person {
  1. public function __destruct() {
  2. echo "
    デストラクタはここで実行されます
    "
  3. }
  4. }
  5. $ p = new person();
  6. $p1 = $p; //このオブジェクトを指すように新しい参照変数 $p1 を設定します
  7. unset($p);
  8. echo "/$p が破棄され、オブジェクトがまた破壊されましたか?";
  9. for ($i = 0; $i echo "
    $i";
  10. }
  11. unset($p1);
  12. echo "ここで、デストラクターが実行されます。";
  13. ?>
コードをコピー
参照変数を設定解除すると、オブジェクトではなくオブジェクトを指す変数が破棄されます。

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