ホームページ >バックエンド開発 >PHPチュートリアル >PHPの基礎知識:クラスとオブジェクト(3)コンストラクターとデストラクター_PHPチュートリアル
コンストラクター
PHP 5 では、開発者がクラス内のコンストラクターとしてメソッドを定義できます。コンストラクターを持つクラスは、オブジェクトが作成されるたびにこのメソッドを呼び出すため、オブジェクトを使用する前に初期化作業を行うのに非常に適しています。
注:
コンストラクターがサブクラスで定義されている場合、その親クラスのコンストラクターは秘密裏に呼び出されません。親クラスのコンストラクターを実行するには、子クラスのコンストラクターでparent::__construct()を呼び出す必要があります。 (??他の言語とは明らかに違う??)
新しい標準コンストラクターの使用
class BaseClass {
function __construct() {
“In BaseClass constructionorn”
}
}
class SubClass extends BaseClass {C Function __ConStruct () {
Parent :: __ Construction ();
Print "in subclass constructionorn"; 後方互換性のために、PHP 5 はクラス内で __construct() 関数を見つけようとします。古いスタイルのコンストラクター。クラスと同じ名前の関数です。したがって、互換性の問題が発生する唯一の状況は、クラスに __construct() という名前のメソッドがすでに存在するが、それがコンストラクターではない場合です。
デストラクター
PHP 5 では、C++ などの他のオブジェクト指向言語と同様のデストラクターの概念が導入されました。デストラクターは、オブジェクトへのすべての参照が削除されるか、オブジェクトが明示的に破棄されるときに実行されます。
例10.9. デストラクターの例
class MyDestructableClass {
function __construct() {
print "Inconstructorn";
$this->name = "MyDestructableClass" }
function __destruct() {
Print "" . $this->name . "n";
}
}
$obj = new MyDestructableClass();
コンストラクターと同様に、親クラスのデストラクターはエンジンによって秘密裏に呼び出されません。親クラスのデストラクターを実行するには、子クラスのデストラクター本体でparent::__destruct()を明示的に呼び出す必要があります。 (??明らかに他の言語とは異なります??)
注:
デストラクターは、スクリプトが閉じられたとき、つまりすべてのヘッダー情報が送信されたときに呼び出されます。
注意:
デストラクターで例外をスローしようとすると、致命的なエラーが発生します。
http://www.bkjia.com/PHPjc/317406.html
www.bkjia.com
true