【发布时间】:2013-03-03 10:33:57
【问题描述】:
我现在正在编写一个应用程序,它应该尽可能简单。我的控制器实现了 render($Layout) 方法,它只执行以下操作:
public function render($Layout) {
$this->Layout = $Layout;
include( ... .php)
}
我不太明白以下问题:在我的控制器中,我定义了一个变量:
public function somethingAction() {
$someVariable = "something";
$this->render('someLayout');
}
在 php 视图文件中(与我在渲染函数中包含的相同)我尝试回显变量,但什么也没有。但是,如果我这样声明我的操作方法:
public function somethingAction() {
global $someVariable;
$someVariable = "something";
$this->render('someLayout');
}
在我看来是这样的:
global $someVariable;
echo $someVariable;
确实有效。每次都写global这个词还是很烦人。
我该怎么做?我宁愿不使用 $_GLOBAL 数组。例如,在 Cake PHP 中,有一个类似 $this->set('varName', $value) 的方法。然后我可以以 $varName 的形式访问视图中的变量。它是如何完成的?
【问题讨论】:
-
您是否将控制器包含在视图中并将模型包含在控制器中?
标签: php global-variables scope