ホームページ  >  記事  >  バックエンド開発  >  php デストラクターはいつ呼び出されますか?

php デストラクターはいつ呼び出されますか?

(*-*)浩
(*-*)浩オリジナル
2019-09-12 13:25:314361ブラウズ

php デストラクターはいつ呼び出されますか?

#デストラクタが呼び出されるタイミング

デストラクタは次の 3 つの状況で呼び出されます。

オブジェクトのライフサイクルが終了して破棄されるとき;

積極的に delete を呼び出す; (推奨学習:

PHP プログラミングの入門から習熟まで )

オブジェクト i はメンバーとしてオブジェクト o の場合、o のデストラクターが呼び出されるとき、オブジェクト i のデストラクターも呼び出されます。

PHP 5 では、C などの他のオブジェクト指向言語と同様のデストラクターの概念が導入されました。デストラクターは、オブジェクトへのすべての参照が削除されるか、オブジェクトが明示的に破棄されるときに実行されます。

<?php
class MyDestructableClass {
   function __construct() {
       print "In constructor\n";
       $this->name = "MyDestructableClass";
   }

   function __destruct() {
       print "Destroying " . $this->name . "\n";
   }
}

$obj = new MyDestructableClass();
?>

コンストラクターと同様、親クラスのデストラクターはエンジンによって秘密裏に呼び出されません。親クラスのデストラクターを実行するには、parent::__destruct() を子クラスのデストラクター本体で明示的に呼び出す必要があります。さらに、コンストラクターと同様に、サブクラスは、デストラクターが定義されていない場合、親クラスを継承します。

exit() を使用してスクリプトの実行を終了する場合でも、デストラクターが呼び出されます。デストラクターで exit() を呼び出すと、残りのシャットダウン操作が中止されます。

注:

デストラクターは、すべての HTTP ヘッダーが送信された後、スクリプトが閉じられるときに呼び出されます。スクリプトを閉じたときの作業ディレクトリは、SAPI (Apache など) 内にあるときとは異なる可能性があります。

注:

デストラクター (スクリプトの終了時に呼び出される) で例外をスローしようとすると、致命的なエラーが発生します。

以上がphp デストラクターはいつ呼び出されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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