#デストラクタが呼び出されるタイミング
デストラクタは次の 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 サイトの他の関連記事を参照してください。