ホームページ >バックエンド開発 >PHPチュートリアル >セクション 4 -- コンストラクターとデストラクター --ClassesandObjectsinPHP54_PHP チュートリアル
/* +---------------------------------------------- --- ---------------------------------+ | = この記事は Haohappy によって読まれています> = 章のクラスand Objects Notes | = 翻訳 + 個人的な経験 | = 不必要なトラブルを避けるため、転載はご遠慮ください。 = 批判や修正は歓迎です。PHP 愛好家の皆さんと一緒に進歩していきたいと思っています。 -------------------------------------------------- -- --------------------+ */ セクション 4 -- コンストラクターとデストラクター クラス内で __construct という名前の関数を宣言すると、この関数が処理されます。明確にするために、__ は 2 つのアンダースコアです。他の関数と同様に、コンストラクターにはパラメーターまたはデフォルト値を含めることができます。オブジェクトを作成し、そのすべてのプロパティをクラスに含めることができます。ステートメントでは、オブジェクトが破棄される前に PHP が呼び出す __destruct という関数を定義することもできます。これはクラス (サブクラス/派生クラス) の強力な機能です。 (親クラス/基本クラス)。派生クラスには基本クラスのすべてのプロパティとメソッドが含まれ、他のプロパティとメソッドに追加することもできます。 3.1.2 で示したように、extends キーワードを使用してクラスを継承できます。この機能が必要な場合、コンストラクターが他のメソッドとともに継承されるとき、どのように継承されるのか疑問に思うかもしれません。第 2 章で説明した :: 演算子を使用する必要があります。これにより、親が指す名前空間を指定できるようになり、親クラスの名前空間で、parent::__construct を使用して親クラスのコンストラクターを呼び出すことができます。これは、PHP の以前のバージョンでも同様であり、このメソッドは依然として有効です。つまり、クラスに Animal という名前を付け、Animal という名前のメソッドを作成すると、このメソッドはクラスに __construt コンストラクターと、そのクラスと同じ名前の関数の両方がある場合、PHP はコンストラクターとして __construct を使用しますが、新しいスクリプト (PHP5) では引き続き使用できます。 __construct。コンストラクターを宣言する PHP の新しい方法により、コンストラクターが属するクラスの名前に関係なく、コンストラクターに一意の名前を付けることができます。これにより、クラスの名前を変更するときにコンストラクターの名前を変更する必要がなくなります。 PHP では、コンストラクターに他のクラス メソッドと同じアクセス メソッドを与えることができます。このモードは、特定のスコープからオブジェクトをインスタンス化する機能に影響を与えます。これにより、デストラクターなどのいくつかの固定デザイン パターンを実装できます。デフォルトでは、PHP はコンストラクターを呼び出して、オブジェクトのプロパティによって占有されているメモリを解放し、その後、オブジェクトに関連付けられたリソースを破棄します。オブジェクトを使用する場合、スクリプトがオブジェクトに関連していないと PHP が判断すると、関数の名前空間内でデストラクターが呼び出されます (グローバル変数の場合、これはスクリプトの最後で行われます)。オブジェクトを明示的に破棄する場合は、そのオブジェクトを指す変数に他の値を割り当てるか、または unset を呼び出します。次の例では、Counter クラスからインスタンス化されたオブジェクトの数をカウントします。クラスが定義されると、コンストラクターでインクリメントが開始され、new を使用してこのクラスのインスタンスを作成できます。クラスの定義は設計図であり、インスタンスはその上に配置されるコンポーネントです。アセンブリ ライン。 New にはクラスの名前が必要で、クラスのインスタンスを返します。関数がパラメータを必要とする場合は、 new の後にパラメータを入力する必要があります。 // 2 番目のインスタンスを作成 $c2 = new Counter(); // 出力 2 print( $c->getCount() . "n"); // インスタンスを破棄 $c2 = NULL; $c->getCount() . "
http://www.bkjia.com/PHPjc/532163.html