ホームページ  >  記事  >  php教程  >  PHP の基礎知識: クラスとオブジェクト (3) コンストラクターとデストラクター

PHP の基礎知識: クラスとオブジェクト (3) コンストラクターとデストラクター

WBOY
WBOYオリジナル
2016-06-13 12:35:16752ブラウズ

コンストラクター
PHP 5 では、開発者がクラス内のコンストラクターとしてメソッドを定義できます。コンストラクターを持つクラスは、オブジェクトが作成されるたびにこのメソッドを呼び出すため、オブジェクトを使用する前に初期化作業を行うのに非常に適しています。
注:
コンストラクターがサブクラスで定義されている場合、その親クラスのコンストラクターは秘密裏に呼び出されません。親クラスのコンストラクターを実行するには、子クラスのコンストラクターでparent::__construct()を呼び出す必要があります。 (??他の言語とは明らかに違う??)

例 10.8. 新しい標準コンストラクターの使用
class BaseClass {
function __construct() {
print "In BaseClass constructionorn"; 🎜> }
}

class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "In SubClass コンストラクター";
}
$obj = new BaseClass();
$obj = new SubClass();

下位互換性のために、PHP 5 が class () 関数で __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()を明示的に呼び出す必要があります。 (??明らかに他の言語とは異なります??)
注:
デストラクターは、スクリプトが閉じられたとき、つまりすべてのヘッダー情報が出力されたときに呼び出されます。
注:
デストラクターで例外をスローしようとすると、致命的なエラーが発生します。


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