セクション 4 -- コンストラクターとデストラクター_PHP チュートリアル

WBOY
リリース: 2016-07-21 16:00:57
オリジナル
961 人が閲覧しました

+------------------------------------------------ ----------------------------------+
| = この記事は 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 の後にパラメータを入力する必要があります





コードをコピーします

コードは次のとおりです:

クラス Counter
{
private static $count = 0;

function __construct()
self::$count ++;
}

function __destruct()
{ self::$count- - ; //最初のインスタンスを作成します
$c = new Counter(); //出力 1
print ($c->getCount() . "
n"); //2 番目のインスタンスを作成しますインスタンス
$c2 = new Counter();

//出力 2
print($c->gt ;getCount() . "
n");

//インスタンスを破棄します
$c2 = NULL;

//出力 1
print($c->getCount() . "
n ")
?>




各インスタンスには独自の属性セットがありますが、メソッドはクラスのすべてのインスタンスで共有されます。



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

www.bkjia.com

tru​​e

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

技術記事

+------------------------------------------------ ----------------------------------+ |=この記事は、『CorePHP プログラミング』の「ClassesandObjects」の章からの Haohappy のメモです。 =主 + 個人の心を翻訳...

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