ホームページ php教程 php手册 セクション 4 コンストラクターとデストラクター [4]

セクション 4 コンストラクターとデストラクター [4]

Jun 13, 2016 pm 12:46 PM
関数 そして 声明 はい 破壊する これ


クラス内で __construct という名前の関数を宣言すると、その関数はコンストラクターとして扱われ、オブジェクト インスタンスの作成時に実行されます。同様に、コンストラクターにはパラメーターまたはデフォルト値。オブジェクトを作成し、そのすべてのプロパティをステートメントに含めるクラスを定義できます。

__destruct 関数と呼ばれるクラスを定義することもできます。オブジェクトが破棄される前に、PHP はこの関数を呼び出します。

継承はクラスの強力な機能です。クラス (サブクラス/派生クラス) は、別のクラス (親クラス/基本クラス) の関数を継承できます。 3.1 と同様に、extends キーワードを使用してクラスを継承することもできます。 コンストラクターがどのように継承されるのか疑問に思われるかもしれません。コンストラクターが他のメソッドとともに継承される場合、オブジェクトの作成時に実行されません。
この機能が必要な場合は、第 2 章 ::operator で説明されているメソッドを使用する必要があります。これにより、parent::__construct を使用して親クラスのコンストラクターを呼び出すことができます。 一部のオブジェクト指向言語では、コンストラクターにクラスの名前を付けます。これは PHP の以前のバージョンでも同様であり、このメソッドは引き続き機能します。つまり、クラスに Animal という名前を付け、その中に Animal という名前のメソッドを作成すると、このメソッドはコンストラクターです。クラスに __construt コンストラクターとそのクラスと同じ名前の関数の両方がある場合、PHP は __construct をコンストラクターとして扱いますが、新しいスクリプトは引き続き使用できます。 PHP5) では __construct を使用する必要があります。 PHP の新しいコンストラクター宣言方法により、コンストラクターが属するクラスの名前に関係なく、コンストラクターに一意の名前を付けることができます。この方法では、クラスの名前を変更するときにコンストラクターの名前を変更する必要がありません。 PHP のコンストラクターには、他のクラス メソッドと同様にアクセス メソッドを指定できます。このアクセス メソッドは、特定のスコープからオブジェクトをインスタンス化する機能に影響を与えます。これにより、シングルトン パターンなどのいくつかの固定デザイン パターンを実装できます。 デストラクターはコンストラクターの逆です。デフォルトでは、PHP はオブジェクトのプロパティによって占有されているメモリーを解放するだけで、任意のコードの実行後にオブジェクトを使用できるようになります。記憶をクリアするために。 デストラクターは、関数の名前空間内でスクリプトがオブジェクトに関連付けられていないと判断したときに呼び出されます。これは、関数が明示的に終了するときに行われます。オブジェクトを破棄する場合は、そのオブジェクトを指す変数に他の値を割り当てることができます。通常は、変数に NULL を割り当てるか、unset を呼び出します。 次の例では、クラスからインスタンス化されたオブジェクトの数がカウントされます。Counter クラスはコンストラクターで増加を開始し、デストラクターで減少します。 クラスを定義したら、new を使用してクラスのインスタンスを作成できます。クラスの定義はブループリントであり、インスタンスはアセンブリ ラインに配置されるコンポーネントです。New はクラスの名前を取得してインスタンスを返します。コンストラクターにパラメーターが必要な場合は、new の後にパラメーターを入力する必要があります。 <?php
クラス カウンタ
{
private static $count = 0; 関数 __construct()
{
self::$count
} 関数 __destruct()
{
self::$count--; function getCount()
{
return self::$count
}
} //最初のインスタンスを作成します
$c = new Counter(); //出力 1
print($c->getCount() . "
n"); // 2 番目のインスタンスを作成します
$c2 = new Counter(); //出力 2
print($c->getCount() . "
n"); //インスタンスを破棄します
$c2 = NULL; // 出力 1
print($c->getCount() . "<br>n"); 新しいインスタンスを作成すると、すべてのプロパティを保存するためのメモリが準備されます。ただし、メソッドはクラスのすべてのインスタンスで共有されます。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

golang 関数で新しい関数を動的に作成するためのヒント golang 関数で新しい関数を動的に作成するためのヒント Apr 25, 2024 pm 02:39 PM

golang 関数で新しい関数を動的に作成するためのヒント

C++ 関数の命名におけるパラメーターの順序に関する考慮事項 C++ 関数の命名におけるパラメーターの順序に関する考慮事項 Apr 24, 2024 pm 04:21 PM

C++ 関数の命名におけるパラメーターの順序に関する考慮事項

Java で効率的で保守しやすい関数を記述するにはどうすればよいでしょうか? Java で効率的で保守しやすい関数を記述するにはどうすればよいでしょうか? Apr 24, 2024 am 11:33 AM

Java で効率的で保守しやすい関数を記述するにはどうすればよいでしょうか?

C++関数のデフォルトパラメータと可変パラメータの長所と短所の比較 C++関数のデフォルトパラメータと可変パラメータの長所と短所の比較 Apr 21, 2024 am 10:21 AM

C++関数のデフォルトパラメータと可変パラメータの長所と短所の比較

Excel関数の公式の完全なコレクション Excel関数の公式の完全なコレクション May 07, 2024 pm 12:04 PM

Excel関数の公式の完全なコレクション

参照型を返す C++ 関数の利点は何ですか? 参照型を返す C++ 関数の利点は何ですか? Apr 20, 2024 pm 09:12 PM

参照型を返す C++ 関数の利点は何ですか?

C++ 関数での参照パラメータとポインタ パラメータの高度な使用法 C++ 関数での参照パラメータとポインタ パラメータの高度な使用法 Apr 21, 2024 am 09:39 AM

C++ 関数での参照パラメータとポインタ パラメータの高度な使用法

カスタム PHP 関数と定義済み関数の違いは何ですか? カスタム PHP 関数と定義済み関数の違いは何ですか? Apr 22, 2024 pm 02:21 PM

カスタム PHP 関数と定義済み関数の違いは何ですか?

See all articles