2011-05-11 55 views
1

是否可以在PHP 4中創建單例類?PHP 4中的單例模式

現在,我有這樣的事情http://pastebin.com/4AgZhgAA它甚至不會在PHP 4

解析用那樣一個單我們需要的最低PHP版本?

+0

爲什麼首先在PHP 4中需要這個?它真的死了。基於它構建新的軟件是一個非常糟糕的主意。 –

回答

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; 
    } 
} 
1

當你在語言的編程是不嚴格的面向對象,它很容易使用力的黑暗面:

function getInstance() { 
    global $singleObj; 

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

爲什麼不呢?比嚴格的單身人士更醜?我不這麼認爲。

(另外,不要忘記,PHP4不支持繼承 - 我花了一些時間吧。)

+0

「PHP4不支持繼承」 - 對不起,舊帖子,但是這個聲明是什麼意思? PHP4當然支持「繼承」嗎? – MrWhite

2

你也可以使用一個包裝函數像這樣;

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