ホームページ >バックエンド開発 >PHPチュートリアル >PHP5 でシングルトン設計パターンを実装するにはどうすればよいですか?
PHP5 のシングルトン デザイン パターン
PHP5 でシングルトン デザイン パターンを実装するには、方法に関係なく、インスタンスを 1 つだけ持つことができるクラスを作成する必要があります。何度もインスタンス化されます。これは、静的変数を使用して単一インスタンスを保存し、クローン作成や逆シリアル化を防ぐことで実現されます。
PHP5 でシングルトン クラスを作成する方法の例を次に示します。
final class UserFactory { private static $inst = null; // Prevent cloning and de-serializing private function __clone(){} private function __wakeup(){} /** * Call this method to get singleton * * @return UserFactory */ public static function Instance() { if self::$inst === null) { self::$inst = new UserFactory(); } return self::$inst; } /** * Private ctor so nobody else can instantiate it * */ private function __construct() { } }
これこの実装では、静的変数 $inst を使用して UserFactory クラスの単一インスタンスを格納します。 Instance() メソッドはシングルトン ゲッターとして機能します。 $inst が null の場合、新しいインスタンスが作成され、$inst に割り当てられます。
この Singleton クラスを使用するには、単に Instance() メソッドを呼び出して単一のインスタンスを取得します。
$fact = UserFactory::Instance(); $fact2 = UserFactory::Instance();
$fact と $fact2 を比較すると true が返され、それらが同じインスタンスであることが確認されます。
ただし、新しいインスタンスを作成しようとすると、 UserFactory オブジェクトで new UserFactory() を直接使用すると、コンストラクターがプライベートになっているため、エラーがスローされます。 UserFactory クラスのインスタンスを取得する唯一の方法は、Instance() メソッドを使用することです。
以上がPHP5 でシングルトン設計パターンを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。