1.シングルトンモードとは何ですか?
1. 意味
オブジェクト作成モードとして、シングルトン モードは、特定のクラスがインスタンスを 1 つだけ持つことを保証し、それ自体をインスタンス化し、このインスタンスをシステム全体にグローバルに提供します。インスタンスのコピーは作成されませんが、シングルトン クラスの内部に格納されているインスタンスへの参照を返します。
2. シングルトン モードの 3 つの重要なポイント:
(1) クラスの唯一のインスタンスを保持する静的メンバー変数が必要です:
プライベート静的 $_インスタンス
(2). 外部プログラムが新しいクラスを作成してシングルトン モードの意味を失うことを防ぐために、コンストラクターとクローン関数をプライベートとして宣言する必要があります。
リーリー
リーリー
1. PHP の欠点:
PHP 言語は解釈されたスクリプト言語です。この操作メカニズムにより、各 PHP ページが解釈および実行された後に、関連するすべてのリソースがリサイクルされます。言い換えれば、PHP には言語レベルでオブジェクトをメモリに常駐させる方法がありません。これは、たとえば Java では、ライフサイクル全体を通じて常に存在します。変数はページ間レベルであり、アプリケーションのライフサイクル内でこのインスタンスを真に一意にすることができます。ただし、PHP では、グローバル変数であろうとクラスの静的メンバーであろうと、すべての変数はページ レベルであり、ページが実行されるたびに新しいオブジェクトが再確立され、ページの実行後にクリアされます。 PHP のシングルトン モードは意味がないようなので、単一のページ レベルのリクエストで複数のアプリケーション シナリオが発生し、同じオブジェクト リソースを共有する必要がある場合にのみ、PHP シングルトン モードが非常に意味があると思います。
2. PHP でのシングルトン モードの適用場面:
(1)、アプリケーションとデータベースの相互作用
アプリケーションでは、データベース ハンドルを介してデータベースに接続するなど、多数のデータベース操作が行われます。これは、新しい操作のたびにメモリ リソースとシステム リソースが消費されるため、シングルトン モードを使用すると、大量の新しい操作を回避できます。 。
(2)、制御設定情報
特定の構成情報をグローバルに制御するためにシステム内でクラスが必要な場合は、シングルトン パターンを使用して簡単に実装できます。
1. 通常のデータベースアクセス例:
リーリー
2. シングルトンモードを適用してデータベースを操作します:
リーリー
次のコードは、シングルトン モードを使用した PDO 操作データベース クラスのカプセル化です。
呼び出し方法:
以上がこの記事の全内容です。PHP プログラミングを学習する皆さんのお役に立てれば幸いです。