<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## **單例模式** >[info]目的:**`確保唯一性`**,保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。例如同一時間只能允許一臺設備登陸 應用場景:數據庫連接、緩存操作、分布式存儲 分布式下的單例模式 分布式可以說是當下很熱門的概念,那么單例模式在分布式環境下是否依然實用呢?我以分布式Session舉例吧,分布式Session常見的做法就是用一個全局緩存(如Redis)存儲Session對象,多個Web應用共享這個Session對象,這個不就是活生生的單例嗎?還有就是分布式ID某種意義上也可以說是單例模式,起碼生成出來的分布式ID需要全局唯一。 特點: * 靜態方法檢測唯一性并實例化對象 * 私有的final構造函數 * 私有的克隆魔術方法確保不能被復制 * 私有的靜態屬性存放唯一的類對象 ``` class test { //保存類實例的私有靜態成員變量 private static $_instance; //定義一個私有的構造函數,確保單例類不能通過new關鍵字實例化,只能被其自身實例化(一定還要加final否則可以繼承重寫構造函數) private final function __construct() { echo 'test __construct'; } //定義私有的__clone()方法,確保單例類不能被復制或克隆 private function __clone() {} public static function getInstance() { //檢測類是否被實例化 if ( ! (self::$_instance instanceof self) ) { self::$_instance = new test(); } return self::$_instance; } } //調用單例類 test::getInstance(); ``` pdo單例 ``` <?php class Database { protected static $_instance = null; protected $dsn; public $dbh; /** * 構造 * * @return Database */ private final function __construct($dbHost, $dbUser, $dbPasswd, $dbName, $dbCharset) { try { $this->dsn = 'mysql:host='.$dbHost.';dbname='.$dbName; $this->dbh = new PDO($this->dsn, $dbUser, $dbPasswd); $this->dbh->exec('SET character_set_connection='.$dbCharset.', character_set_results='.$dbCharset.', character_set_client=binary'); } catch (PDOException $e) { throw new Exception($e->getMessage(), 1); } } /** * 防止克隆 * */ private function __clone() {} /** * 獲取PDO的單例實例 * * @return Object */ public static function getInstance($dbHost, $dbUser, $dbPasswd, $dbName, $dbCharset="utf8") { if (self::$_instance === null) { self::$_instance = new self($dbHost, $dbUser, $dbPasswd, $dbName, $dbCharset); echo 1111; } return self::$_instance; } } $pdo=Database::getInstance("localhost","root","","test"); Database::getInstance("localhost","root","","test"); Database::getInstance("localhost","root","","test"); Database::getInstance("localhost","root","","test"); Database::getInstance("localhost","root","","test"); $res=$pdo->dbh->query("select * from o2o_user"); $result = $res->fetchAll(PDO::FETCH_BOTH); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看