php单例模式
class SingleDesign { private static $instance = null; private function __construct(){} private function __clone(){} public static function getInstance() { if (self::$instance === null) { self::$instance = new self(); } return self::$instance; } }
单例模式:
优点:在运行期间,只能得到一个类的实例.防止重复的开销.
设计思路:
1.设置一个静态变量
2.私有化构造方法
3.提供一个静态方法,在静态方法中判断静态变量是否有初始化为该类实例,如果有,返回,没有,初始化
其实一些函数中也可以借用这种思想
function user_info ($uid) { static $s_user = array(); if (isset($s_user[$uid])) { $s_user[$uid] = $db->where("id=" . $uid)->query(); } return $s_user[$uid]; }
在程序运行期间,调用该方法,比如获取$uid为10的用户信息,无论调用多少次,则只会读取一次数据库.节省开销.