Singleton(單例模式):單例模式是最常見的模式之一,在Web應用的開發中,常常用於允許在運行時為某個特定的類創建僅有一個可訪問的實例。
<?php class Singleton{ //私有屬性,用於保存實例 private static $instance; //構造方法私有化,防止外部創建實例 private function __construct(){} //公有屬性,用於測試 public $a; //公有方法,用於獲取實例 public static function getInstance(){ //判斷實例有無創建,沒有的話創建實例並返回,有的話直接返回 if(!(self::$instance instanceof self)){ self::$instance = new self(); } return self::$instance; } //克隆方法私有化,防止復制實例 private function __clone(){} }
測試:
首先創建兩個實例:
$first = Singleton::getInstance(); $second = Singleton::getInstance();
給第一個實例中的$a屬性賦值,並打印兩個實例
$first->a = "zs"; echo "<pre>"; print_r($first); print_r($second);
打印結果為:
給第二個賦值,並打印:
$first->a = "zs"; $second->a = "ls"; echo "<pre>"; print_r($first); print_r($second);
PHP的單例模式相對Java比較簡單,Java只一個單例模式就有好幾種寫法,如想了解請自行百度 :)