国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP設計模式之工廠模式與單例模式

2024-05-04 23:50:14
字體:
來源:轉載
供稿:網友

本文實例講述了PHP設計模式之工廠模式與單例模式實現方法。分享給大家供大家參考,具體如下:

設計模式簡單說應對某類問題而設計的解決方式

工廠模式:應對需求創建相應的對象

class factory{  function __construct($name){    if(file_exists('./'.$name.'.class.php')){      return new $name;    }else{      die('not exist');    }  }}

單例模式:只創建一個對象的實例,不允許再創建實例,節約資源(例如數據庫的連接)

class instance{  public $val = 10;  private static $instance ;  private function __construct(){}  private function __clone(){}  //設置為靜態方法才可被類調用  public static function getInstance(){    /*if(!isset(self::$instance)){      self::$instance = new self;    }*/    if(!isset(instance::$instance)){      instance::$instance = new self;    }    return instance::$instance;  }}$obj_one = instance::getInstance();$obj_one->val = 20;//clone可以調用__clone()克隆即new出一個新的的對象//$obj_two = clone $obj_one;$obj_two = instance::getInstance();echo $obj_two->val;echo '<p>';var_dump($obj_one,$obj_two);

運行結果如下:

20object(instance)[1] public 'val' => int 20object(instance)[1] public 'val' => int 20

應用:數據庫連接類(database access oject)

class mysqldb{  private $arr = array(    'port' => 3306,    'host' => 'localhost',    'username' => 'root',    'passward' => 'root',    'dbname' => 'instance',    'charset' => 'utf8'     );  private $link;  static $instance;  private function __clone(){}  private function __construct(){    $this->link = mysql_connect($this->arr['host'],$this->arr['username'],$this->arr['passward']) or die(mysql_error());    mysql_select_db($this->arr['dbname']) or die('db error');    mysql_set_charset($this->arr['charset']);  }  static public function getInsance(){    if(!isset(mysqldb::$instance)){      mysqldb::$instance = new self;    }    return mysqldb::$instance;  }  public function query($sql){    if($res = mysql_query($sql)){      return $res;    }return false;  }  //fetch one  public function get_one($sql){    $res = $this->query($sql);    if($result = mysql_fetch_row($res)){      return $result[0];    }  }  //fetch row  public function get_row($sql){    $res = $this->query($sql);    if($result = mysql_fetch_assoc($res)){      return $result;    }    return false;  }  //fetch all  public function get_all($sql){    $res = $this->query($sql);    $arr = array();    while($result = mysql_fetch_assoc($res)){      $arr[] = $result;    }    return $arr;  }}$mysql = mysqldb::getInsance();

 

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 万源市| 神木县| 仪陇县| 拜城县| 正阳县| 孟州市| 应用必备| 盐池县| 姜堰市| 岳普湖县| 临澧县| 兴宁市| 同仁县| 尖扎县| 始兴县| 弋阳县| 巨野县| 克东县| 竹溪县| 伊吾县| 灵璧县| 盐山县| 锦州市| 伽师县| 象山县| 宜良县| 蒙阴县| 建水县| 鄯善县| 奉节县| 法库县| 瑞安市| 台中县| 公安县| 阜宁县| 丰台区| 宜都市| 古丈县| 绵阳市| 兰州市| 福州市|