是否可以在PHP 4中創建單例類?PHP 4中的單例模式
現在,我有這樣的事情http://pastebin.com/4AgZhgAA它甚至不會在PHP 4
解析用那樣一個單我們需要的最低PHP版本?
是否可以在PHP 4中創建單例類?PHP 4中的單例模式
現在,我有這樣的事情http://pastebin.com/4AgZhgAA它甚至不會在PHP 4
解析用那樣一個單我們需要的最低PHP版本?
PHP4和OOP ===汽車沒有發動機(:
這是可能的,但不切實際
看看此示例代碼:
class SomeClass
{
var $var1;
function SomeClass()
{
// whatever you want here
}
/* singleton */
function &getInstance()
{
static $obj;
if(!$obj) {
$obj = new SomeClass;
}
return $obj;
}
}
亞歷克斯,這篇文章應該是有幫助的 - http://abing.gotdns.com/posts/2006/php4-tricks-the-singleton-pattern-part-i/。關鍵是使用基類,並在子類構造函數中調用父類的單例實例化方法。
當你在語言的編程是不嚴格的面向對象,它很容易使用力的黑暗面:
function getInstance() {
global $singleObj;
if (!is_object($singleObj)) $singleObj = new Foo();
return $singleObj;
}
爲什麼不呢?比嚴格的單身人士更醜?我不這麼認爲。
(另外,不要忘記,PHP4不支持繼承 - 我花了一些時間吧。)
「PHP4不支持繼承」 - 對不起,舊帖子,但是這個聲明是什麼意思? PHP4當然支持「繼承」嗎? – MrWhite
你也可以使用一個包裝函數像這樣;
function getDB() {
static $db;
if($db===NULL) $db = new db();
return $db;
}
爲什麼首先在PHP 4中需要這個?它真的死了。基於它構建新的軟件是一個非常糟糕的主意。 –