ホームページ バックエンド開発 PHPチュートリアル PHP メモリ管理コンストラクターとデストラクター_PHP チュートリアル

PHP メモリ管理コンストラクターとデストラクター_PHP チュートリアル

Jul 13, 2016 am 10:33 AM
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 デストラクター インスタンスを作成すると、すべてのプロパティを保存するためのメモリが準備されます。 各インスタンスには、独自の一意のプロパティ セットがあります。 ただし、メソッドはクラスのすべてのインスタンスで共有されます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/752402.html技術記事初めて PHP 言語を学習する友人は、PHP デストラクターについてあまり知らないかもしれません。この記事では、この側面に関連する知識を詳しく説明します。皆さんのお役に立てば幸いです...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

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

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

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

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

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

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

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

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

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

See all articles