這篇文章介紹的內容是關於PHP單例和工廠模式 ,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
工廠模式:
<?php interface persion{ public function say(); } class man implements persion{ public function say(){ echo 'i am man'; } } class factory{ public static function createman(){ return new man(); } } $obj = factory::createman(); $obj->say();
工廠模式,常用的就是改了man類別的名稱,只需要改下工廠類別factory裡邊createman類別的內容就可以了,其他呼叫類別的地方都不用改,工廠模式其實就是再呼叫類別的地方跟類別之間又加了一層工廠類,呼叫的位址直接呼叫工廠類別
單例模式:
單列模式常用到連接資料庫的類,例如:
<?php class Database { // 声明$instance为私有静态类型,用于保存当前类实例化后的对象 private static $instance = null; // 数据库连接句柄 private $db = null; // 构造方法声明为私有方法,禁止外部程序使用new实例化,只能在内部new private function __construct($config = array()) { $dsn = sprintf('mysql:host=%s;dbname=%s', $config['db_host'], $config['db_name']); $this->db = new PDO($dsn, $config['db_user'], $config['db_pass']); } // 这是获取当前类对象的唯一方式 public static function getInstance($config = array()) { // 检查对象是否已经存在,不存在则实例化后保存到$instance属性 if(self::$instance == null) { self::$instance = new self($config); } return self::$instance; } // 获取数据库句柄方法 public function db() { return $this->db; } // 声明成私有方法,禁止克隆对象 private function __clone(){} // 声明成私有方法,禁止重建对象 private function __wakeup(){} } $config = array( 'db_name' => 'test1', 'db_host' => 'localhost', 'db_user' => 'root', 'db_pass' => '' ); //获取数据库连接句柄 $obj = database::getInstance($config); $db = $obj->db();
單例模式簡單理解就是把類別的建構子弄成私有屬性,這樣就可以禁止外部直接實例化,然後再弄個靜態方法,在這個方法裡判斷當前類別有沒有實例化對象,如果沒有就實例化自己,然後賦值給一個類別屬性傳回,如果有實例化則直接傳回這個實例化物件
以上是PHP單例和工廠模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文比較了PHP和ASP.NET,重點是它們對大規模Web應用程序,性能差異和安全功能的適用性。兩者對於大型項目都是可行的,但是PHP是開源和無關的,而ASP.NET,

本文討論了PHP數據對象(PDO),這是PHP中數據庫訪問的擴展名。它通過準備好的語句及其對MySQLI的好處,包括數據庫抽象和更好的錯誤處理,強調了PDO在增強安全性方面的作用。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Dreamweaver Mac版
視覺化網頁開發工具

WebStorm Mac版
好用的JavaScript開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。