【发布时间】:2012-03-30 17:32:35
【问题描述】:
我正在使用 PHP 5.3.8 和 CakePHP 2.1.1。
这是我的视图(布局是空的,实际上它只输出视图本身)
<?php
// $present is not a view variable
$present = 'Hello World!';
class ApplicationsPDF
{
public function CreateApplicationTable()
{
global $present;
exit(var_dump($present));
}
}
$pdf = new ApplicationsPDF();
$pdf->CreateApplicationTable();
?>
输出是null,而不是“Hello World!”。
如果我将此代码复制并粘贴到单个文件中(我直接从浏览器运行),它会完美运行!
所以它一定是一个 CakePHP 错误。有人知道吗?
【问题讨论】:
-
我无法想象以前从未发现过如此重要的错误,但在 5.3.9+ 更改日志中没有任何相关内容。我不得不想象这与您当地的环境有关。你在使用 auto_prepend_file 来处理任何事情吗?
-
否,但上面的代码是从 CakePHP 2.1.1 运行的。我刚刚发现代码完全独立运行。我将编辑问题。 (我知道 Stackoverflow 不是错误跟踪器,但我不想删除这个问题)
-
我知道这不是重点,但你为什么认为你需要使用全局变量?为什么不将
$present传递给构造函数并设置一个类变量? -
@Madmartigan 你完全正确!我已经想重构它,但后来我发现了这个错误 ;)
-
是的,上面贴的代码是我的完整视图文件(将代码减少到bug之后)。