在 vb.net 工作多年后,我才开始涉足 php。
我想编写一个记录器类,它在我的 web 应用程序上作为单机运行,代码如下:
class cLog{
private $data = NULL;
static private $instance = NULL;
static public function getInstance(){
if(self::$instance == NULL){
echo "empty!";
self::$instance = new cLog();
}
return self::$instance;
}
private function __construct(){
}
private function __clone(){
}
public function getData(){
return self::getInstance()->data;
}
public function trace($o){
self::getInstance()->data[] = $o;
}
}
我期望的是,当我在多次调用 cLog::trace() 方法的应用程序页面之间切换时,数据数组会增加并且它会充满所有跟踪。但我得到的是:每次我运行一个页面时,$instance 都是空的,所以对象重新启动(如你所见,我在实例 getter 中放置了一个 echo“empty!”行:它每次都显示)
我想我在 php 应用程序生命周期中有一些误解......
这里有一个用法示例:
cLog::getInstance()->trace("hello world");
$logs = cLog::getInstance()->getData();
谢谢