PHP面向对象—单例模式_PHP教程
缂傚倸鍊搁崐椋庣矆娴h娲晝閸屾氨鍔电紓浣插亾闁硅京顒CMS闂備浇宕甸崰鎰版偡閵夈儙娑樷攽鐎c劉鍋撻崒鐐查唶闁哄洨鍋為悗顒€鈹戦悙鍙夘棡闁搞劎鍠栧濠氭晸閿燂拷婵犵數鍋為崹璺侯潖鐟欏嫮鐝堕柛鈩冪☉閻撴﹢鏌″搴″箺闁抽攱甯¢弻銊╂偆閸屾稑顏� 缂傚倸鍊风粈渚€藝闁秴绐楅柟閭﹀墾閼板潡鏌涢妷顔煎缂佲偓婢舵劖鐓冮柕澶堝妽閻濐亪鏌e┑鎾村 闂傚倸鍊风欢锟犲磻閸曨垁鍥ㄦ綇閳哄啰顦繝銏f硾閺堫剟宕楀⿰鍫熺厸闁搞儯鍔嶉惃鎴︽⒒婢跺﹦效闁哄被鍊栧ḿ蹇涘Ω閿旂粯顥涚紓鍌欑劍閸炲骞忛敓锟� 闂傚倷绀侀幖顐﹀疮閻楀牊鍙忛柟缁㈠枛濡炰粙鏌″搴′簽闁告纰嶇换娑㈠幢濡闉嶅┑顕嗙稻閸旀鍩€椤掑喚娼愰柟顔肩埣瀹曟洟鏌嗗鍛厬闂佽法鍣﹂幏锟�,闂傚倷娴囬惃顐﹀礋椤愩垹袘闂佽姘﹂~澶嬬箾婵犲偆鍤曢柛顐f礀缁€鍐┿亜閺傚灝鎮戞い蹇曞枑缁绘盯骞嬮悙鏉戠殤闂佺ǹ顑嗛幑鍥ь潖閸濆嫧鏋庨柟顖嗗嫮浜梻浣告啞閻熴儳鎹㈠Ο渚殨濠电姵纰嶉弲鎼佹煥閻曞倹瀚�!
推荐:使用PHP构造函数
构造函数的定义: 在类中创建与类同名的函数,即为构造函数。 (1)构造函数可以带参数,也可以不带参数。 (2)当使用构造函数的时候,可以在实例化一个对象的时候,同时调用了该函数,而无需在实例化对象后,使用方法或者函数。 (3)构造函数就是对象的一个方法。 例子:
单例模式是设计模式中比较简单的模式,会在一些特殊的场影得以运用,比如:应用中只需要一个对象实例存在,这时使用单例模式能够节省内存。单例模式体现了面向对象封装特性中的“单一职责”和“对象自治”原则。
构建一个PHP的单例类需要以下要求:
构造函数为private,防止外部代码new此对象。
构造函数为final可以禁止子类覆盖。
拥有一个静态成员变量来保存自身实例。
拥有一个返回自身实例,公共且静态的方法,此方法负责只产生一个实例,如果已经有一个实例则直接返回。
为了防止对象被克隆,还要重写__clone()方法
- <?php
- class Database {
- private $_db;
- static $_instance;
- final private function __construct($dbname,$user='root',$password='',$port='3306') {
- $conStr = "dbname=".$dbname." user=".$user." password=".$password." port=".$port;
- $this->_db = pg_connect($conStr);
- }
- private __clone() {};
- public static function getInstance($dbname,$user='root',$password='',$port='3306') {
- if( ! (self::$_instance instanceof self) ) {
- self::$_instance = new self($dbname,$user='root',$password='',$port='3306');
- }
- return self::$_instance;
- }
- public function query($sql) {
- return pg_query($this->_db, $sql);
- }
- }
- ?>
分享:PHP重载方法
1.重载 Overload 子类改变父类的方法,为重载。 重载是一种覆盖性行为,会将以前的方法覆盖掉。 2.重载案例: ?php class EMBA_student //声明EMBA学生类 { //用var来定义类的属性 var $no ; //序号 var $name ; //姓名 var $gender ; //性别 var $age ; //年龄 //方法
相关PHP教程:
- 相关链接:
- 教程说明:
PHP教程-PHP面向对象—单例模式
。