php には非常に魔法のメソッドのクラスがあり、通常は外部から明示的に呼び出されることはなく、二重アンダースコア (__) を使用します。方法。 PHP 関係者は、二重アンダースコアで始まる他のメソッドを定義することを推奨していません。
今回は、最も一般的なマジック メソッドであるコンストラクターとデストラクターを紹介します。
1. コンストラクター(__construct)
リーリーコンストラクター: コンストラクターを持つクラスは、新しいオブジェクトを作成するたびに最初にこのメソッドを呼び出すため、オブジェクトを使用する前にいくつかの初期化サービスを実行することが非常に適しています。
注意:
1.Cloneはコンストラクターを呼び出しません
2. サブクラスがコンストラクターを定義している場合、親クラスのコンストラクターは暗黙的に呼び出されません
3. サブクラスのコンストラクターパラメーターは、親クラスのコンストラクターパラメーターと矛盾することが許可されます
4. サブクラスがコンストラクターを定義していない場合、php は親クラスのコンストラクターを見つけようとします
5. 親クラスがコンストラクタを定義していない場合、parentキーワードを使用して親クラスのコンストラクタを明示的に呼び出すと致命的なエラーが発生します
リーリーマジック メソッドのコンストラクターに加えて、PHP はクラスと同じ名前のコンストラクターもサポートしますが、その優先順位はマジック メソッドよりも低くなります。
リーリーphp5.3.3 以降、クラス名と同じ名前のメソッドは名前空間内で使用され、コンストラクターとしては使用されなくなりました。これは名前空間の外では変更されません。 リーリー
コンストラクターは、シングルトン モードなどの 3 つのアクセス制御修飾子をすべて使用できます。 リーリー2. デストラクター(
__destruct) リーリー デストラクター: デストラクターは、オブジェクトへのすべての参照が削除されるか、オブジェクトが明示的に破棄されるときに実行されます。
注意:1. コンストラクターと同様に、親クラスのデストラクターはエンジンによって秘密裏に呼び出されず、明示的にparent::__destructと呼ばれる必要があります
2. exit and die ではデストラクタの実行を防ぐことはできません
3. 致命的なエラーによりデストラクターの実行が妨げられます
4. デストラクター内で exit を呼び出すと、他の未実行のデストラクターの実行を防ぐことができます
5. 親クラスがデストラクタを定義していない場合、parentキーワードを使用して親クラスの
destructor関数を明示的に呼び出すと致命的なエラーが発生します リーリー
http://www.bkjia.com/PHPjc/1104060.html