クラス内で関数を宣言し、それに __construct という名前を付けると、この関数はコンストラクターとして扱われ、オブジェクト インスタンスの作成時に実行されます。他の関数と同様に、コンストラクターにもパラメーターがあります。またはデフォルト値。オブジェクトを作成し、そのすべてのプロパティをステートメントに配置するクラスを定義できます。
__destruct という名前の関数を定義することもできます。この関数は、オブジェクトが破棄される前に呼び出されます。デストラクターと呼ばれます。
継続はクラスの強力な機能です。あるクラス (サブクラス/派生クラス) は、別のクラス (親クラス/基本クラス) の機能を継続できます。その派生クラスには、基本クラスのすべてのプロパティとメソッドが含まれます。派生クラスに他のプロパティやメソッドを追加することもできます。3.1.2 で示したように、extends キーワードを使用してクラスを拡張することもできます。他のメソッドと一緒に拡張された場合、オブジェクトの作成時に実行されません。
この機能が必要な場合は、第 2 章で説明した :: 演算子を使用する必要があります。これにより、名前空間を指すことができます。 .parent は親クラスの名前空間を指します。parent::__construct を使用して親クラスのコンストラクターを呼び出すことができます。 一部のオブジェクト指向言語では、これは以前のバージョンでも同様でした。つまり、クラスに Animal という名前を付け、その中に Animal という名前のメソッドを作成した場合、クラスに同じ名前の __construt コンストラクターと関数の両方がある場合、このメソッドはコンストラクター Function になります。 PHP は __construct をクラスとして扱います。これにより、以前の PHP バージョンで作成されたクラスを引き続き使用できます。ただし、新しいスクリプト (PHP5) を使用する必要があります。PHP でコンストラクターを宣言するこの新しい方法により、コンストラクターは次のことを行うことができます。このように、クラスの名前を変更するときに、コンストラクターの名前を変更する必要はありません。 PHP では、他のクラス メソッドと同様に、アクセス メソッドは特定のスコープからオブジェクトをインスタンス化する機能に影響を与えます。これにより、シングルトン パターンなどのいくつかの固定デザイン パターンを実装できます。
次の例では、クラスからインスタンス化されたオブジェクトの数をカウントします。コンストラクターから開始され、デストラクターでデクリメントされます。 クラスを定義したら、new を使用してクラスのこのインスタンスを作成できます。クラスの定義は設計図であり、インスタンスはその上に配置されるコンポーネントです。アセンブリ ライン。New はクラスの名前を必要とし、クラスのインスタンスを返します。コンストラクターがパラメーターを必要とする場合は、new.class Counter{
private static $count = の後にパラメーターを入力する必要があります。 0;
function __construct()
{self::$count ;
}
function __destruct()
{
self::$count --;
}
function getCount()
{
return self: :$count;
}
//最初のインスタンスを作成します
$c = new Counter();
print($c->getCount() . "
n" );
//2 番目のインスタンスを作成します
$c2 = new Counter();
print($c- >getCount() . "
n");
//インスタンスを破棄します
$c2 = NULL;
print($c->getCount() . "
n");
?>
その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。