从单例类PHP检索数据
我试图存储要在后端传递的文件信息,所以我创建了一个带有静态数组和访问数组的静态方法的单例类 然而,在检索数据时,我只得到一个空数组。我哪里出了问题从单例类PHP检索数据,php,static,singleton,Php,Static,Singleton,我试图存储要在后端传递的文件信息,所以我创建了一个带有静态数组和访问数组的静态方法的单例类 然而,在检索数据时,我只得到一个空数组。我哪里出了问题 class FileStore { private static $_tempFileData = array(); private static $initialized = false; private function __construct() {} private static function initialize() {
class FileStore {
private static $_tempFileData = array();
private static $initialized = false;
private function __construct() {}
private static function initialize() {
if (self::$initialized)
return;
self::$initialized = true;
}
public static function storeTempFileData($data) {
self::initialize();
self::$_tempFileData[] = $data;
}
public static function getTempFileData() {
self::initialize();
return self::$_tempFileData;
}
public static function clearTempFileData() {
self::initialize();
unset(self::$_tempFileData);
}
}
首先,这不是一个单例类,而是一个静态类。Singleton假设创建类的实例 在您的代码中,我看到
storeTempFileData
向静态变量追加了一个值,但是getTempFileData
没有返回相同的值-它返回一个数组
还有一个问题-在取消设置self::$\u tempFileData
后,它不再是数组。所以self:$\u tempFileData[]=$data代码>将触发通知
基本上,我认为您需要更改self::$\u tempFileData[]=$data代码>到self:$\u tempFileData=$data代码>你能将代码粘贴到存储数组的位置并获取它吗?第一次清除后,Singleton看起来是正确的,它不会再工作了。好吧,如果我只想访问静态数组,添加元素并检索数组,这怎么可能呢?所以您确实希望它返回一个数组,而不是您在storeTempFileData
中设置的数组?好,在本例中,更改unset(self:$\u tempFileData)代码>到self:$\u tempFileData)=array()
。除此之外,代码似乎是正确的。请提供示例代码,说明您在何处使用该类,但该类无法按预期工作。