我试图存储要在后端传递的文件信息,因此我创建了一个带有静态数组和访问该数组的静态方法的单例类。
但是,在检索数据时,我只得到一个空数组。我哪里出错了?
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);
}
}
最佳答案
首先,这不是单例,而是静态类。单例假设创建一个类的实例。
在您的代码中,我看到 storeTempFileData
将一个值附加到静态变量,但 getTempFileData
不返回相同的值 - 它返回一个数组。
还有一个问题 - 在您取消设置 self::$_tempFileData
之后,它不再是一个数组。所以 self::$_tempFileData[] = $data;
会触发通知。
基本上我认为您需要将 self::$_tempFileData[] = $data;
更改为 self::$_tempFileData = $data;
。
关于php - 从单例类 PHP 中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29898886/