PHP面向對象—單例模式_PHP教程

      編輯Tag賺U幣
      教程Tag:Apache添加

      推薦:使用PHP構造函數
      構造函數的定義: 在類中創建與類同名的函數,即為構造函數。 (1)構造函數可以帶參數,也可以不帶參數。 (2)當使用構造函數的時候,可以在實例化一個對象的時候,同時調用了該函數,而無需在實例化對象后,使用方法或者函數。 (3)構造函數就是對象的一個方法。 例子:

      單例模式是設計模式中比較簡單的模式,會在一些特殊的場影得以運用,比如:應用中只需要一個對象實例存在,這時使用單例模式能夠節省內存。單例模式體現了面向對象封裝特性中的“單一職責”和“對象自治”原則。

      構建一個PHP的單例類需要以下要求:

      構造函數為private,防止外部代碼new此對象。

      構造函數為final可以禁止子類覆蓋。

      擁有一個靜態成員變量來保存自身實例。

      擁有一個返回自身實例,公共且靜態的方法,此方法負責只產生一個實例,如果已經有一個實例則直接返回。

      為了防止對象被克隆,還要重寫__clone()方法

      1. <?php 
      2. class Database { 
      3.     private $_db
      4.     static $_instance
      5.     final private function __construct($dbname,$user='root',$password='',$port='3306') { 
      6.         $conStr = "dbname=".$dbname." user=".$user." password=".$password." port=".$port
      7.         $this->_db = pg_connect($conStr); 
      8.     } 
      9.     private __clone() {}; 
      10.     public static function getInstance($dbname,$user='root',$password='',$port='3306') { 
      11.         if( ! (self::$_instance instanceof self) ) { 
      12.             self::$_instance = new self($dbname,$user='root',$password='',$port='3306'); 
      13.         } 
      14.         return self::$_instance
      15.     } 
      16.     public function query($sql) { 
      17.         return pg_query($this->_db, $sql); 
      18.     } 
      19. ?> 

      分享:PHP重載方法
      1.重載 Overload 子類改變父類的方法,為重載。 重載是一種覆蓋性行為,會將以前的方法覆蓋掉。 2.重載案例: ?php class EMBA_student //聲明EMBA學生類 { //用var來定義類的屬性 var $no ; //序號 var $name ; //姓名 var $gender ; //性別 var $age ; //年齡 //方法

      來源:未知//所屬分類:PHP教程/更新時間:2012-11-18
      相關PHP教程