オブジェクト作成モードとして、シングルトン モードは、特定のクラスがインスタンスを 1 つだけ持つことを保証し、それ自体をインスタンス化し、このインスタンスをシステム全体にグローバルに提供します。インスタンスのコピーは作成されませんが、シングルトン クラス内に格納されているインスタンスへの参照を返します。
(1) クラスの唯一のインスタンスを保存するには、静的メンバー変数が必要です: private static $_instance;
(2). 外部プログラムが新しいクラスを作成してシングルトン モードの意味を失うことを防ぐために、コンストラクターとクローン関数をプライベートとして宣言する必要があります。
private function __construct() { $this->_db = pg_connect('xxxx'); } private function __clone() { }(3)。このインスタンスにアクセスするには、パブリック静的メソッド (通常は getInstance メソッド) を指定する必要があります。これにより、一意のインスタンスへの参照が返されます。
なぜ PHP シングルトン パターンを使用するのですか?
public static function getInstance() { if(! (self::$_instance instanceof self) ) { self::$_instance = new self(); } return self::$_instance; }
1. PHP は主にデータベース アプリケーションで使用されるため、アプリケーション内で多数のデータベース操作が行われるため、シングルトン モードを使用すると、新しい操作によって消費される大量のリソースを回避できます。
2. システム内の特定の構成情報をグローバルに制御するためにクラスが必要な場合は、シングルトン モードを使用して簡単に実装できます。