有没有一种简单的方法可以在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