在哪里以及如何设置所有控制器中可用的变量值。我不会使用 zend 注册表,也不想扩展 Zend_Controller_Action。还有其他方法吗?我只想设置:
$a = "测试";
并在索引控制器中转储它:
类 IndexController 扩展 Zend_Controller_Action { 公共函数 indexAction(){ var_dump($a); } }
在哪里以及如何设置所有控制器中可用的变量值。我不会使用 zend 注册表,也不想扩展 Zend_Controller_Action。还有其他方法吗?我只想设置:
$a = "测试";
并在索引控制器中转储它:
类 IndexController 扩展 Zend_Controller_Action { 公共函数 indexAction(){ var_dump($a); } }
全局变量破坏了面向对象编程的目的......使用命名空间或自定义配置。
使用会话 Zend_Session_Namespace,这里是关于如何使用 Zend_Session_Namespace 的文档。
或者,您可以创建一些具有静态属性的新类,并使用它的 setter/getter 来设置和检索值。
例如
class SomeClass
{
static $hello = 'world';
}
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
var_dump(SomeClass::$hello);
}
}
您可以将变量添加到请求对象:
$this->getRequest()->setParam('a', 'hello');
然后使用以下方法检索它:
$this->getRequest()->getParam('a);
但这不是最好的方法,因为您可能会不小心将参数覆盖为所需的参数。