Php ZF:布局的视图变量定义

Php ZF:布局的视图变量定义,php,model-view-controller,zend-framework,layout,controller,Php,Model View Controller,Zend Framework,Layout,Controller,我有一些控制器索引。 在这里我定义了一个变量: class IndexController extends Zend_Controller_Action { function IndexController() { $this->view->some_val = 100; } } 布局如下: <html> <p><?= $this->some_val; ?></p> &l

我有一些控制器索引。 在这里我定义了一个变量:

class IndexController extends Zend_Controller_Action
{
      function IndexController()
      {
           $this->view->some_val = 100;
      }
}
布局如下:

<html>
<p><?= $this->some_val; ?></p>
<?= $this->getLayout()->content; ?>
</html>

但在这种情况下,我得到的是NULL而不是100。我试图在preDispatch函数中定义它,但结果是一样的。 有人能帮忙吗?
如果需要保存可重用变量,请使用占位符查看帮助程序

public function indexAction() {
    $this->view->placeholder('some_value')->set(100);
}
在任何视图脚本或布局中

echo $this->placeholder('some_value')->getValue();   // -> 100

如果需要保存可重用变量,请使用
占位符
查看帮助器

public function indexAction() {
    $this->view->placeholder('some_value')->set(100);
}
在任何视图脚本或布局中

echo $this->placeholder('some_value')->getValue();   // -> 100

其中一个将如@Yanick Rochon所写。另一种方法是将变量直接分配到布局(),例如

然后在你的布局中

<p><?= $this->layout()->some_val; ?></p>


一个是@Yanick Rochon写的。另一种方法是将变量直接分配到布局(),例如

然后在你的布局中

<p><?= $this->layout()->some_val; ?></p>


BTW:您不应该使用短php标记:根据我的经验,这应该可以。BTW:您不应该使用短php标记:根据我的经验,这应该可以。您能解释一下将变量分配给视图实例和布局之间的区别吗?这是我的问题。请你解释一下。谢谢。您能解释一下将变量分配给视图实例和布局之间的区别吗?这是我的问题。请你解释一下。非常感谢。