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