1
显然,正确的方式来自控制器的变量传递给在ZF2一个观点是:
return new ViewModel(array(
'myVar' => "Hello World",
));
并显示可变的方式是:
echo $this->myVar;
然而,我发现,这也适用:
echo $myVar;
是否有任何理由使用$this->
,如果它不似乎没有必要?
显然,正确的方式来自控制器的变量传递给在ZF2一个观点是:
return new ViewModel(array(
'myVar' => "Hello World",
));
并显示可变的方式是:
echo $this->myVar;
然而,我发现,这也适用:
echo $myVar;
是否有任何理由使用$this->
,如果它不似乎没有必要?
请注意,“查看”上下文中的$this
与其预期用途保持一致。
视图内的文件将始终指示当前视图对象(视图模型)。
虽然您仍然可以以这种方式访问视图变量:echo $myVar;
。
但是,这样的变量可以很容易地被覆盖在视图内容中,并因此成为具有自定义值的“本地”变量。
这里是一些实际的演示: 让我们分别有IndexController.php
和查看文件index.phtml
。
IndexController.php:
class General_IndexController extends Zend_Controller_Action {
...
public function indexAction() {
...
$this->view->myVar = "value from contr-er";
}
...
}
index.phtml:
<?php $myVar = "myvar in view"; ?>
<?php var_dump($myVar); ?>
<?php var_dump($this->myVar); ?>
.... // html markup
的输出将是:
string 'myvar in view' (length=13)
string 'value from contr-er' (length=19)
虽然$this->myVar
也可以在视图中被覆盖,但是$this
作为视图对象可以让您与从控制器传递的所有变量(值)保持清晰直接的关系。
我想你需要提供更多的代码。 $ myVar存储在哪里?在什么范围? –