PHPシングルトンモード学習メモ_PHPチュートリアル
この目的を達成するには、プロジェクト全体のインスタンスが 1 つだけであることを確認し、グローバル アクセスのためのアクセス ポイントを提供する必要があります。これには、このクラスの共有静的メソッドを呼び出してこのインスタンスにアクセスする必要があります。つまり、このクラスはクラスの外部ではインスタンス化できませんが、クラス内でのみインスタンス化でき、インスタンスは共有静的メソッドを通じてのみ呼び出すことができます。
最近、『PHP Advanced Programming, Patterns, Frameworks and Testing』という本を読んでいて、たくさんの洞察が得られましたので、それを皆さんと共有したいと思います。
プロジェクトに取り組むとき、私たちは通常、共有構成クラス、テンプレート操作クラス、データベース接続などの特定のクラスの 1 つのインスタンスで十分であることを望みます。これらのクラスは、複数回インスタンス化される場合、プロジェクト開発全体で共通です。 、リソースを占有します。この目的を達成するには、プロジェクト全体のインスタンスが 1 つだけであることを確認し、グローバル アクセスのためのアクセス ポイントを提供する必要があります。これには、このクラスの共有静的メソッドを呼び出してこのインスタンスにアクセスする必要があります。つまり、このクラスはクラスの外部ではインスタンス化できませんが、クラス内でのみインスタンス化でき、インスタンスは共有静的メソッドを通じてのみ呼び出すことができます。
それでは、このクラスが外部でインスタンス化されないようにするにはどうすればよいでしょうか?このシングルトン クラスには、コンストラクター __construct があり、それを private に設定する必要があります (__construct がすでに存在するため、デフォルトの構築方法は考慮されません。クラス名を直接使用する方法)。これにより、外部で直接使用されないようにすることができます。 .インスタンス化!同時に、このクラスのインスタンスを保存するための静的メソッド変数と、このインスタンスにアクセスするための共有静的メソッド変数も宣言する必要があります (共有する必要があるため、共有コード領域を格納するために静的と宣言されています)想い出)。また、クローンが作成されないように、空のプライベート __clone() メソッドを作成する必要があります。
非常に典型的なシングルトン クラスは次のとおりです:
コードをコピー | |
{
/** |
。
http://www.bkjia.com/PHPjc/628959.html

ホット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 のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

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