php 單例模式


  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只一個單例模式就有好幾種寫法,如想了解請自行百度 :)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM