デストラクター
__destruct ( void ) : void
PHP 5 では、C などの他のオブジェクト指向言語と同様のデストラクターの概念が導入されました。 。デストラクターは、オブジェクトへのすべての参照が削除されるか、オブジェクトが明示的に破棄されるときに実行されます。
デストラクターは、オブジェクトへのすべての参照が削除されたとき (明示的に破棄されたか暗黙的に破棄されたかに関係なく)、または php ファイルが実行されたときに実行されます。
オブジェクトへのすべての参照が削除されます: (推奨される学習: 初心者から熟練者までの PHP プログラミング )
、使用unset(对象名),将对象名销毁 2、$对象名 = null 3、$对象名 = 'abc'
明示的な破棄:
上に書いた 3 つの方法はすべて明示的破棄であり、いわゆる明示的破棄とは、プログラマが能動的にオブジェクト参照を削除することを意味します。
プログラマが明示的にオブジェクトを破棄しない場合、プログラムの実行後、オブジェクトはシステムによって破棄されます。これがシステム破壊です。暗黙的な破壊とも呼ばれます。
基本構文:
class 类名{ public function __destruct(){ //函数体 //析构函数的重要作用,就是释放对象创建的资源 //比如 数据库连接,文件句柄,绘图句柄。。。 } }
説明:
(1) デストラクターはすべて public
( 2) __destruct はキーワードです。変更しないでください
(3) デストラクタには仮パラメータがありません
(4) システムはデストラクタ中に
を呼び出します (5)デストラクタは、次の状況でシステムによって呼び出されます。
php ファイルが実行されます
オブジェクトへのすべての参照が削除されるか、オブジェクトが明示的に破棄されるときに実行されます。
<?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 サイトの他の関連記事を参照してください。