本文實(shí)例講述了php設(shè)計(jì)模式之單例模式用法。分享給大家供大家參考,具體如下:
?php
/**
* @desc 單例模式
* 目的:防止過(guò)多的new對(duì)象和clone對(duì)象,沒(méi)有對(duì)象的時(shí)候new對(duì)象并緩存,始終保持都是同一個(gè)對(duì)象實(shí)例
* 特點(diǎn):php的單例是進(jìn)程中的單例,而不像java屬于內(nèi)存中的單例
* **/
class single{
protected static $ins = null;//聲明一個(gè)靜態(tài)變量,用來(lái)存儲(chǔ)類(lèi)的實(shí)例
private $name;//聲明一個(gè)私有的實(shí)例變量
/**
* 私有化構(gòu)造方法,防止不斷的創(chuàng)建對(duì)象
* **/
private function __construct(){
}
public static function getIns(){
if(self::$ins===null){
self::$ins = new self();
}
return self::$ins;
}
public function setName($name){
$this->name = $name;
}
public function getName(){
return $this->name;
}
}
$single1 = single::getIns();
$single2 = single::getIns();
$single1->setName('hello world!');
$single2->setName('hello php!');
echo $single1->getName();//輸出結(jié)果:hello php!
echo "br/>":
echo $single2->getName();//輸出結(jié)果:hello php!
/***
* 分析:輸出的結(jié)果都是hello php!
* 采用了單例模式對(duì)象$single1與$single2是等價(jià)的,因此對(duì)象$single1與$single2都在設(shè)置類(lèi)的變量時(shí)指向都是一致的,變量值取對(duì)象設(shè)置的最新的一個(gè)值
* **/
運(yùn)行結(jié)果:
hello php!
hello php!
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門(mén)教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- PHP pthreads v3下worker和pool的使用方法示例
- PHP-FPM 設(shè)置多pool及配置文件重寫(xiě)操作示例
- PHP設(shè)計(jì)模式之建造者模式(Builder)原理與用法案例詳解
- PHP設(shè)計(jì)模式之適配器模式(Adapter)原理與用法詳解
- PHP設(shè)計(jì)模式之策略模式(Strategy)入門(mén)與應(yīng)用案例詳解
- PHP設(shè)計(jì)模式之單例模式入門(mén)與應(yīng)用詳解
- PHP設(shè)計(jì)模式之觀察者模式入門(mén)與應(yīng)用案例詳解
- php設(shè)計(jì)模式之觀察者模式定義與用法經(jīng)典示例
- 淺談PHP設(shè)計(jì)模式之對(duì)象池模式Pool