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