RSS Feed
  1. PHP实现单例模式

    June 17, 2011 by Luin

    目前的一个项目有几个模块需要实现单例模式,于是想实现一个Singleton基类来使这些模块通过继承该基类实现Singleton。

    这是一个Singleton的PHP实现,然而这时希望通过如下代码使Database类实现Singleton是不可行的:

    因为__CLASS__获得的永远只是父类(Singleton)而不是子类,所以无法获知子类类信息,自然也就无法实现子类的单例。

    PHP5.3 提供了get_called_class()函数,用过此函数可以实现Singleton的继承

    其它实现方式

    为了能在PHP5.3以前实现Singleton的继承,我们可以定义一个静态数组来维护类的实例,定义以及使用方法如下: