這篇文章介紹的內容是關於PHP設計模式之單例模式,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
##單例模式( Singleton)也屬於創建型模式之一,理解起來不算很難,
看了一些資料,最基本的應用就是--任務管理器。
其實個人的理解就是無法創造第二個相同的物件。
<?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創建的英雄為:周瑜
以上是PHP設計模式之 單例模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!