PHP 4中的单例模式

时间:2011-05-11 12:25:12

标签: php singleton php4

是否可以在PHP 4中创建单例类?

现在我有类似http://pastebin.com/4AgZhgAA的内容甚至无法在PHP 4中解析

使用像这样的单身人士所需的最低PHP版本是什么?

4 个答案:

答案 0 :(得分:2)

Alex,这篇文章应该会有所帮助 - http://abing.gotdns.com/posts/2006/php4-tricks-the-singleton-pattern-part-i/。关键是使用基类,并在子类构造函数中调用父的单例实例化方法。

答案 1 :(得分:2)

PHP4和OOP ===没有引擎的车(:

这是可能的,但不切实际。

查看此示例代码:

class SomeClass
{
    var $var1;

    function SomeClass()
    {
        // whatever you want here
    }

    /* singleton */
    function &getInstance()
    {
        static $obj;
        if(!$obj) {
            $obj = new SomeClass; 
        }
        return $obj;
    }
}

答案 2 :(得分:2)

你也可以使用像这样的包装函数;

 function getDB() {
   static $db;
   if($db===NULL) $db = new db();
   return $db;
 }

答案 3 :(得分:1)

当你用一种不严格OOP的语言编程时,很容易使用力量的黑暗面:

function getInstance() {
  global $singleObj;

  if (!is_object($singleObj)) $singleObj = new Foo();
  return $singleObj;
}

为什么不呢?看起来比严格的单身人士更丑陋?我不这么认为。

(另外,不要忘记PHP4不支持继承 - 我花了几个小时的时间。)