国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP設計模式之工廠模式與單例模式

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

2021-03-05 17:40ligbee PHP教程

這篇文章主要介紹了PHP設計模式之工廠模式與單例模式,簡單介紹的工廠模式與單例模式的功能,并結合實例形式分析了工廠模式及單例模式的實現與應用,需要的朋友可以參考下

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

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

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

?
1
2
3
4
5
6
7
8
9
class factory{
  function __construct($name){
    if(file_exists('./'.$name.'.class.php')){
      return new $name;
    }else{
      die('not exist');
    }
  }
}

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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);

運行結果如下:

?
1
2
3
4
5
20
object(instance)[1]
 public 'val' => int 20
object(instance)[1]
 public 'val' => int 20

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久午夜剧场 | 日韩精品区| 精品久久久久久久久福利 | 亚洲一区二区三区在线免费观看 | 久久久一二三 | 天堂av中文在线 | 日韩精品影院 | 日韩一区二区三区在线视频 | 中文字幕天天操 | 一区二区三区视频在线观看 | 一区二区三区四区精品 | 在线中文字幕视频 | 激情欧美一区二区三区 | 国产色在线 | 天操天天干 | 毛片国产| 日韩欧美一区二区三 | 久久综合九色综合网站 | 综合色成人 | 午夜免费电影 | 韩国成人精品a∨在线观看 欧美精品综合 | 成人av免费 | 精品国产99| 国产精品一二三 | 国产一区二区三区久久 | 日本不卡在线观看 | 成人免费一区二区三区视频网站 | 国产精品网站在线观看 | a级片在线观看 | 精久久久 | 香蕉大人久久国产成人av | 午夜av成人| 成人a免费 | 色视频在线播放 | 亚洲综合av在线播放 | 久久久久久久久国产 | 欧美午夜精品久久久 | 这里只有精品视频 | 国产精选一区二区三区不卡催乳 | 福利一区二区 | 国产高清精品一区二区三区 |