麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
[原创]如何在实例构造时保持 singleton 的模式?
悬赏分:20 - 2007年08月17日

不少前人都讲过如何在 PHP 中应用 singleton 这种开发模式来维持如 DbConnection、Configuation 等实例的单一性。但相信有所研究的朋友都会发现,对于 singleton 这种模式下实例的创建,一般推崇的是 Class::GetInstance() 的方式。

但是如果不小心使用了 New Class() 的方式呢?毕竟程序员也是人,一天到晚的满负荷运转,还是会出现头昏脑胀的时候。通过测试,在 PHP4 的环境中发现了一个可以满足这一去求的实现方式。虽然实在无法让人推崇^_^
[php]
class x
{
function x ()
{
$this = 123;
}
}

$y = new x;

var_export( $y );
[/php]
大家可以自己尝试一下,最后的输出内容是什么?不再是
[php]
class x {
}
[/php]
而是让人激动的 123 !( PHP5 如何,不得而知…我把 PHP5 已经删了。)相信这一点,不少人都有自己测试的经验。但是有想过通过这样的方式,可以将 singleton 模式从头到尾的贯穿下来。于是就有:
[php]
class x
{
function x ()
{
$this = x::GetInstance();
}
function GetInstance ()
{
// statements here.
}
}
[/php]
呵,不过这样的方式虽然能够达到要求,但是看着还是怪怪的。不知道有没有哪位高人有更好的方法,可以讨论一下。

提问者:snakevil   08-17 11:11
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
81 + 44 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM