【发布时间】:2012-12-20 15:57:34
【问题描述】:
我创建了一个简单的 Drupal 模块,它使用单例设计模式在钩子调用之间保存数据。但是,这似乎并没有像我希望的那样保存数据。
这似乎是 PHP 理解问题而不是 Drupal,但如果有人有 Drupal 提示,这就是我正在做的事情。
单例设置
class TempStore {
private $_fileName;
public function getFileName() { return $_fileName; }
public function setFileName($fileName) { $_fileName = $fileName; }
function __construct() {
}
}
function MYMODULE_data() {
static $data;
if (!isset($data))
$data = new TempStore();
return $data;
}
即使在同一个函数中也能看到问题。
function MYMODULE_file_insert($file) {
$token = $file->timestamp;
MYMODULE_data()->setFileName($token);
// error message: Notice: Undefined variable: _fileName in TempStore->getFileName()
$checkVal = MYMODULE_data()->getFileName();
}
错误信息是
注意:未定义变量:TempStore 中的_fileName->getFileName()
由于这发生在同一个函数调用中,我认为这是我对 PHP 如何处理此类事情的理解失败,并且与 Drupal 没有真正的关系。
有人能看出哪里不对吗?
【问题讨论】: