ホームページ > バックエンド開発 > PHPチュートリアル > セクション 4 - コンストラクターとデストラクター - PHP5 のクラスとオブジェクト [4_PHP チュートリアル]

セクション 4 - コンストラクターとデストラクター - PHP5 のクラスとオブジェクト [4_PHP チュートリアル]

WBOY
リリース: 2016-07-20 11:03:54
オリジナル
897 人が閲覧しました

セクション 4 - コンストラクターとデストラクター
クラス内で __construct という名前の関数を宣言すると、この関数はコンストラクターとして扱われ、オブジェクト インスタンスの作成時に実行されます。明確にするために、__ は他の関数と同様に 2 つのアンダースコアです。 、コンストラクターにはパラメーターまたはデフォルト値を含めることができます。オブジェクトを作成するクラスを定義し、そのすべてのプロパティをステートメントに含めることもできます。また、__destruct という関数を定義することもできます。オブジェクトが破棄される前に、PHP はこの関数を呼び出します。
継承はクラスの強力な機能です。あるクラス (サブクラス/派生クラス) は、別のクラス (親クラス/基本クラス) の関数を継承できます。その派生クラスには、基本クラスのすべてのプロパティとメソッドが含まれます。派生クラスに他のプロパティやメソッドを追加することもできます。3.1.2 で示したように、extends キーワードを使用してクラスを継承することもできます。コンストラクターは継承されます。他のメソッドとともに継承される場合、オブジェクトの作成時には実行されません。
この関数が必要な場合は、第 2 章で説明した :: 演算子を使用する必要があります。名前空間は親クラスの名前空間を指し、parent::__construct を使用して親クラスのコンストラクターを呼び出すことができます。
一部のオブジェクト指向言語では、クラスの後にコンストラクターの名前を付けます。 PHP のいくつかのバージョンでは、このメソッドはまだ機能します。つまり、クラスに Animal という名前を付け、その中に Animal too メソッドという名前のクラスを作成した場合、クラスに __construt コンストラクターと関数の両方がある場合、このメソッドはコンストラクターになります。クラスと同じ名前の場合、PHP は __construct をコンストラクターとして扱います。これにより、以前の PHP バージョンで作成されたクラスは引き続き使用できますが、新しいスクリプト (PHP5) では、コンストラクターを宣言する __construct を使用する必要があります。クラスの名前に関係なく、一意の名前を付けることができます。このようにして、クラスの名前を変更するときに、コンストラクターの名前を変更する必要はありません。 PHP のコンストラクターは、他のクラス メソッドと同様に、特定のスコープからオブジェクトをインスタンス化する機能に影響します。これにより、シングルトン パターンなどのいくつかの固定デザイン パターンの実装が可能になります。 PHP は、オブジェクトをメモリから破棄するためにこれらを呼び出します。デフォルトでは、PHP はオブジェクトのプロパティによって占有されているメモリを解放するだけであり、オブジェクトの使用後に任意のコードを実行してメモリをクリアできます。スクリプトがオブジェクトに関連しなくなると、関数の名前空間内でデストラクターが呼び出されます。グローバル変数の場合、これはスクリプトが明示的に終了するときに発生します。 、オブジェクトを指す変数に他の値を割り当てることができます。通常、変数を NULL または Call unset に割り当てます。
次の例では、クラスからインスタンス化されたオブジェクトの数をカウントし、コンストラクターからカウントを開始します。デストラクターでデクリメントします。





http://www.bkjia.com/PHPjc/445273.html

www.bkjia.com

tru​​e

技術記事セクション 4 - コンストラクターとデストラクター クラス内で __construct という名前の関数を宣言すると、この関数はコンストラクターとして扱われ、オブジェクト インスタンスの作成時に使用されます...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート