PHP メモリ管理コンストラクターとデストラクター_PHP チュートリアル
初めて PHP 言語を学習する友人は、PHP デストラクターについてあまり知らないかもしれません。この記事では、この側面に関連する知識を詳しく説明します。お役に立てれば幸いです。
ほとんどのクラスには、コンストラクターと呼ばれる特別なメソッドがあります。オブジェクトが作成されると、コンストラクターが自動的に呼び出されます。コンストラクターは、通常、いくつかの便利な初期化タスクを実行するために使用されます。コンストラクターの宣言は、その名前が __construct() である必要があることを除いて、他の操作の宣言と同じです。これは PHP5 での変更であり、以前のバージョンではコンストラクターの名前はクラス名と同じである必要がありました。下位互換性のため、クラスに __construct() という名前のメソッドがない場合、PHP はクラスと同じ名前のメソッドを検索します。
リーリーコンストラクターの反対はデストラクターです。デストラクタは、PHP5 で新しく追加された内容です。PHP4 にはデストラクタはありません。デストラクターを使用すると、クラスが破棄される前に一部の操作または関数を実行できます。これは通常、クラスへのすべての参照がリセットされるかスコープ外になると自動的に行われます。 コンストラクターの名前と同様に、クラスのデストラクターの名前は __destruct() でなければなりません。デストラクターはパラメータを取ることができません。
リーリー__construct という名前のクラスで関数を宣言すると、この関数はコンストラクターとして扱われ、オブジェクト インスタンスの作成時に実行されます。 明確にするために、__ は 2 つのアンダースコアです。 他の関数と同様に、コンストラクターにはパラメーターまたはデフォルト値を含めることができます。 クラスを定義してオブジェクトを作成し、そのすべてのプロパティをステートメントに含めることができます。
オブジェクトが破棄される前に PHP が呼び出す __destruct という関数を定義することもできます。 これは PHP デストラクターと呼ばれます。
継承はクラスの強力な機能です。 あるクラス (サブクラス/派生クラス) は、別のクラス (親クラス/基本クラス) の機能を継承できます。 派生クラスには基本クラスのすべてのプロパティとメソッドが含まれており、派生クラスに他のプロパティとメソッドを追加できます。 基本クラスのメソッドとプロパティをオーバーライドすることもできます。 3.1.2 に示すように、extends キーワードを使用してクラスを拡張できます。
コンストラクターがどのように継承されるのか疑問に思われるかもしれません。 他のメソッドとともに継承された場合、オブジェクトの作成時に実行されません。 この機能が必要な場合は、:: 演算子を使用する必要があります。 これにより、名前空間を指すことができます。 parent は親クラスの名前空間を指します。parent::__construct を使用して親クラスのコンストラクターを呼び出すことができます。
一部のオブジェクト指向言語では、コンストラクターにクラスの後に名前を付けます。 PHP の以前のバージョンにも同じことが当てはまり、この方法は現在でも機能します。つまり、クラスに Animal という名前を付け、その中に Animal という名前のメソッドを作成した場合、このメソッドはコンストラクターになります。クラスに __construt コンストラクターと、クラスと同じ名前の関数の両方がある場合、PHP は __construct をコンストラクターとして扱います。これにより、以前の PHP バージョンで作成されたクラスを引き続き使用できるようになります。 ただし、新しいスクリプト (PHP5) では __construct を使用する必要があります。
PHP でコンストラクターを宣言するこの新しい方法により、コンストラクターが属するクラスの名前に関係なく、コンストラクターに一意の名前を付けることができます。 こうすることで、クラスの名前を変更するときにコンストラクターの名前を変更する必要がなくなります。
コンストラクターには、PHP の他のクラス メソッドと同じアクセス権を与えることができます。 アクセス メソッドは、特定の範囲からオブジェクトをインスタンス化する機能に影響します。 これにより、シングルトン パターンなどのいくつかの固定設計パターンの実装が可能になります。
PHP デストラクター、コンストラクターの反対。 PHP はこれらを呼び出して、メモリからオブジェクトを破棄します。 デフォルトでは、PHP はオブジェクトのプロパティによって占有されているメモリのみを解放し、オブジェクト関連のリソースを破棄します。 デストラクターを使用すると、オブジェクトの使用後に任意のコードを実行してメモリをクリアできます。
スクリプトがオブジェクトに関連付けられなくなったと PHP が判断すると、PHP デストラクターが呼び出されます。 関数の名前空間内では、関数が戻るときにこれが発生します。 グローバル変数の場合、これはスクリプトの最後に行われます。 オブジェクトを明示的に破棄する場合は、オブジェクトを指す変数に他の値を代入できます。 通常、変数を NULL に割り当てるか、unset を呼び出します。
次の例では、クラスからインスタンス化されたオブジェクトの数を数えます。 Counter クラスはコンストラクターからインクリメントされ、PHP デストラクターでデクリメントされます。
クラスを定義したら、new を使用してこのクラスのインスタンスを作成できます。 クラス定義は設計図であり、インスタンスは組立ラインに配置される部品です。 New はクラスの名前を取得し、そのクラスのインスタンスを返します。 コンストラクターにパラメーターが必要な場合は、new の後にパラメーターを入力する必要があります。
リーリープログラムの実行結果:
リーリー新しい PHP デストラクター インスタンスを作成すると、すべてのプロパティを保存するためのメモリが準備されます。 各インスタンスには、独自の一意のプロパティ セットがあります。 ただし、メソッドはクラスのすべてのインスタンスで共有されます。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
