ホームページ >バックエンド開発 >PHPチュートリアル >セクション 4 -- コンストラクターとデストラクター_PHP チュートリアル
+------------------------------------------------ ----------------------------------+
| = この記事は Haohappy によって読まれています<<コア PHP プログラミング> ;>
| = クラスとオブジェクトの章のメモ
| = 不必要なトラブルを避けるため、転載はご遠慮ください
|すべての PHP 愛好家と一緒に進歩しましょう
| = PHP5 Research Center: http://blog.csdn.net/haohappy2004
+---------------------- ---------- -------------------------------------- ---------- +
*/
セクション 4 -- コンストラクターとデストラクター
クラス内で __construct という名前の関数を宣言すると、この関数はコンストラクターとみなされ、明確に言うと、__ は 2 つのアンダースコアです。他の関数と同様に、コンストラクターにはオブジェクトを作成し、そのすべてのプロパティをステートメントに含めることができます。
オブジェクトが破棄される前に PHP が呼び出す __destruct という関数を定義することもできます。これはデストラクターと呼ばれます。
継承はクラス (サブクラス) の機能を継承できます。別のクラス (親クラス/基本クラス)。派生クラスには基本クラスのすべてのプロパティとメソッドが含まれ、派生クラスに他のプロパティとメソッドを追加することもできます。 3.1.2 で示したように、extends キーワードを使用してクラスを継承できます
コンストラクターが他のメソッドと一緒に継承される場合、オブジェクトの作成時に実行されないことに疑問に思うかもしれません。関数を使用するには、第 2 章で説明した :: 演算子を使用する必要があります。これにより、名前空間を指すことができます。parent は親クラスの名前空間を指し、parent::__construct を使用して親クラスのコンストラクターを呼び出すことができます。一部のオブジェクト指向言語では、コンストラクターにクラスの名前を付けます。これは PHP の以前のバージョンにも当てはまり、このメソッドは引き続き機能します。つまり、クラスに Animal という名前を付け、その中に Animal という名前のメソッドを作成すると、このメソッドはコンストラクターです。クラスに __construt コンストラクターとそのクラスと同じ名前の関数の両方がある場合、PHP は __construct をコンストラクターとして扱います。そのため、以前の PHP バージョンで作成されたクラスも引き続き使用できます。スクリプト (PHP5) は __construct を使用する必要があります。
PHP のコンストラクターを宣言する新しい方法により、コンストラクターが属するクラスの名前に関係なく、コンストラクターに一意の名前を付けることができます。このようにして、クラスの名前を変更するときは、コンストラクターの名前を変更する必要はありません。
他のクラス メソッドと同様に、コンストラクターにアクセス メソッドを与えることができます。このアクセス メソッドは、特定のスコープからオブジェクトをインスタンス化する機能に影響します。
デストラクターなどのいくつかの固定設計パターンは、コンストラクターとは対照的に、PHP はオブジェクトをメモリから破棄するために呼び出します。デフォルトでは、PHP はオブジェクトのプロパティによって占有されているメモリのみを解放し、それに関連するリソースを破棄します。デストラクターを使用すると、オブジェクトの使用後に任意のコードを実行してメモリをクリアできます。
スクリプトがオブジェクトに関連していないと判断すると、関数の名前空間内でコンストラクターが呼び出されます。グローバル変数の場合、これはスクリプトの最後に行われます。オブジェクトを明示的に破棄する場合は、通常、変数に他の値を代入できます。
次の例では、クラスからインスタンス化されたオブジェクトの数をカウントします。
クラスを定義すると、コンストラクターで値が増加し始めます。 new を使用してクラスのインスタンスを作成します。クラスの定義は設計図面であり、インスタンスはアセンブリ ラインに配置されるコンポーネントです。New はクラスの名前を要求し、コンストラクターの例を返します。パラメータが必要なので、 new の後にパラメータを入力する必要があります
コードをコピーします
コードは次のとおりです: