この記事では、PHP のデザイン パターンのシングルトン モードを紹介します。必要な方は参考にしてください。いくつかの情報を読めば、理解するのは難しくありません。最も基本的なアプリケーションはタスク マネージャーです。
実際、私の個人的な理解では、は 2 つ目の同一のオブジェクト
を作成することはできません。
オブジェクトが作成されているかどうかをプログラムが内部で判断します。作成されていない場合は、それを直接使用します。 次のような簡単な記録を作成しました:
<?php /** Singleton * 单例模式类 * @static $obj * @var $hero */ class Singleton { // 创建静态对象变量 private static $obj = null; // 当前对象里面的人物 public $hero; //实例化对象变量方法,供外部调用 public static function getInstance() { // 判断对象是否创建 if(empty(self::$obj)) { // 如果没有创建对象 创建并保存 self::$obj = new Singleton(); } // 如果创建了直接返回 return self::$obj; } }
<?php // 单例模式 index.php header("Content-Type:text/html;charset=utf-8"); require_once "Singleton.php"; // 第一次调用实例化对象变量方法 $single1 = Singleton::getInstance(); // 给 hero赋值为 诸葛亮 $single1->hero = "诸葛亮"; echo "single1创建的英雄为:{$single1->hero}<br/>"; // 第二次调用实例化对象变量方法 程序会判断出对象已经创建过,直接使用。 $single2 = Singleton::getInstance(); // 给hero赋值为 周瑜,会直接覆盖第一次的诸葛亮 $single2->hero = "周瑜"; echo "single1创建的英雄为:{$single1->hero}<br/>"; echo "single2创建的英雄为:{$single2->hero}<br/>";
出力結果は次のとおりです:
single1 によって作成された英雄: 諸葛孔明
single1 によって作成された英雄: 周瑜
single2 によって作成されたヒーロー 対象: Zhou Yu 関連する推奨事項:
PHP デザイン パターンの抽象ファクトリー
以上がPHP デザイン パターン シングルトン パターンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。