全局變量通常被認爲是不好的做法,除非絕對必要,所以我正在尋找其他方法來實現某些功能。在PHP中替代全局
我們目前正在開發PHP系統中的CMS系統,並希望允許其他開發人員輕鬆地爲CMS編寫模塊。現在
class CMS
{
public $version;
public $sitename;
public $siteurl;
public $tbl_prefix;
function __construct()
{
}
function RegisterModule()
{
}
}
,我們希望產生的CMS
一個實例,並使其開發商(和所有模塊和核心文件)通過變量訪問:$_cms
我們如下定義的CMS類。由於我們無法在PHP中使用常量變量,並且使用Singleton模式提供了笨拙的語法來訪問實例(例如CMS::GetInstance()->RegisterModule()
),有沒有什麼辦法可以實現我們想要的,而不需要定義一個包含CMS
實例的全局變量?
理想的情況下,我們正在尋找類似的語法如下:
_cms->RegisterModule();
或$_cms->RegisterModule();
,前者是優選的。
所以,你基本上想要一個全局變量,但不想把它稱爲全局變量? :-) – lafor
我會說我想要一個*常數*變量,而不是一個全局變量...... ;-) – BenM
+1導致它觸及我的興趣 –