ホームページ >バックエンド開発 >PHPチュートリアル >phpデストラクタの使い方を詳しく解説
void destruct (void)
PHP 5 では、C++ などの他のオブジェクト指向言語と同様のdestructorの概念が導入されました。デストラクターは、オブジェクトへのすべての参照が削除されるか、オブジェクトが明示的に破棄されるときに実行されます。
デストラクターの例<?php class MyDestructableClass { function construct () { print "In constructor\n" ; $this -> name = "MyDestructableClass" ; } function destruct () { print "Destroying " . $this -> name . "\n" ; } } $obj = new MyDestructableClass (); ?>exit() を使用してスクリプトを終了する場合でも、デストラクターが呼び出されます。デストラクターで exit() を呼び出すと、残りのシャットダウン操作が中止されます。 注: デストラクターは、すべての HTTP ヘッダーが送信された後、スクリプトが閉じられるときに呼び出されます。スクリプトを閉じたときの作業ディレクトリは、SAPI (Apache など) 内にあるときとは異なる可能性があります。 注: デストラクター (スクリプトの終了時に呼び出される) で例外をスローしようとすると、致命的なエラーが発生します。
class x { function construct() { $this->file = fopen('path', 'a'); } function destruct() { fclose($this->file); } }簡単に言えば、デストラクターはオブジェクトが閉じられるときに特別な作業を完了するために使用されます。たとえば、上で書いた例では、インスタンス化と同時にファイルが開かれますが、いつ閉じられるのでしょうか。使用後にそれを閉じるだけです。したがって、デストラクターはそれを直接閉じるか、または破棄中に、デストラクターが完了する前に処理されたデータの一部をデータベースに書き込むことを検討できます。プロパティはまだ存在しており、内部アクセスにのみ使用されるため、オブジェクトに関連する後続作業を安全に実行できます
デストラクターはオブジェクト自体のメモリを解放するものではなく、ユーザーが追加のメモリを解放する必要がある場合に使用されます。解放する必要があるメモリがどこにあるかを PHP に指示し、最終的に PHP はそれを破棄するときに使用します
実際に解放する必要があるリソースがない限り、架空の関数を明示的に記述する必要はありません。次の Just.
unset(
変数名
または $変数名 = NULL を使用します。
以上がphpデストラクタの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。