有沒有一種簡單的方法可以在PHP中爲整個應用程序創建一個類對象全局?我需要我的類只能在整個應用程序中實例化一次,並使其工作100%。PHP - 在整個應用程序中使類對象全局化?
謝謝。
編輯
決定Singleton模式是什麼,我需要最好的想法,並要求添加一些代碼所以在這裏,它是:
使用我的應用程序類:
function catp_check_request(){
$catp=catp::getInstance();
$dlinks=array();
$ddlinks=array();
foreach($catp->rawlinks->link as $rawlink){
$dellink="catp-del-{$rawlink->name}";
array_push($dlinks,$dellink);
}
// More stuff..
}
聲明類:
class catp {
private static $instance;
private $errors;
private $status_messages;
private $plugin_name;
private $plugin_shortname;
private $links;
private $linksurl;
private $rawlinks;
private function __construct(){}
public static function getInstance() {
if (self::$instance == null) {
self::$instance = new catp();
}
return self::$instance;
}
public function catp(){
$this->errors=false;
$this->plugin_name='CloakandTrack Plugin';
$this->plugin_shortname='CaTP';
$this->status_messages=array(
'updated' => 'You just updated',
'enabled' => 'You just enabled',
'disabled' => 'You just disabled',
'debug' => 'Plugin is in debug mode'
);
$this->linksurl=dirname(__FILE__).'/links.xml';
$this->rawlinks=simplexml_load_file($this->linksurl);
$this->links=$this->catp_parse_links($this->rawlinks);
}
// More functions..
}
這看起來正是我需要的。我嘗試切換我的代碼,看起來類似於你提供給我的鏈接,但現在我得到了這些類型的錯誤:'致命錯誤:不能訪問私有財產catp :: $ rawlinks英寸。 。 - 這是什麼常見的事情?看來每個變量實際上都返回NULL。 – Jared
@Jared你可以用類聲明顯示你的例子嗎? –
當然,我更新了我的問題。謝謝。 – Jared