php設(shè)計(jì)模式之單例模式用法經(jīng)典示例分析
本文實(shí)例講述了php設(shè)計(jì)模式之單例模式用法。分享給大家供大家參考,具體如下:
<?php
/**
* @desc 單例模式
* 目的:防止過多的new對象和clone對象,沒有對象的時候new對象并緩存,始終保持都是同一個對象實(shí)例
* 特點(diǎn):php的單例是進(jìn)程中的單例,而不像java屬于內(nèi)存中的單例
* **/
class single{
protected static $ins = null;//聲明一個靜態(tài)變量,用來存儲類的實(shí)例
private $name;//聲明一個私有的實(shí)例變量
/**
* 私有化構(gòu)造方法,防止不斷的創(chuàng)建對象
* **/
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!
* 采用了單例模式對象$single1與$single2是等價(jià)的,因此對象$single1與$single2都在設(shè)置類的變量時指向都是一致的,變量值取對象設(shè)置的最新的一個值
* **/
運(yùn)行結(jié)果:
hello php!
hello php!
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
Yii數(shù)據(jù)讀取與跳轉(zhuǎn)參數(shù)傳遞用法實(shí)例分析
這篇文章主要介紹了Yii數(shù)據(jù)讀取與跳轉(zhuǎn)參數(shù)傳遞用法,結(jié)合實(shí)例形式分析了Yii中read()與readAll()方法的相關(guān)使用技巧,需要的朋友可以參考下2016-07-07
yii2 在控制器中驗(yàn)證請求參數(shù)的使用方法
這篇文章主要介紹了yii2 在控制器中驗(yàn)證請求參數(shù)的使用方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06
php使用ICQ網(wǎng)關(guān)發(fā)送手機(jī)短信
php發(fā)送手機(jī)短信實(shí)例代碼。2013-10-10
thinkPHP5框架自定義驗(yàn)證器實(shí)現(xiàn)方法分析
這篇文章主要介紹了thinkPHP5框架自定義驗(yàn)證器實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了thinkPHP自定義驗(yàn)證器的具體定義與使用方法,需要的朋友可以參考下2018-06-06
laravel框架模型和數(shù)據(jù)庫基礎(chǔ)操作實(shí)例詳解
這篇文章主要介紹了laravel框架模型和數(shù)據(jù)庫基礎(chǔ)操作,結(jié)合實(shí)例形式詳細(xì)分析了laravel框架模型的定義及數(shù)據(jù)庫的增刪改查等相關(guān)操作技巧,需要的朋友可以參考下2020-01-01

