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的用户信息,无论调用多少次,则只会读取一次数据库.节省开销.

posted @ 2017-05-07 17:30  rorshach  阅读(115)  评论(0编辑  收藏  举报