Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用smarty引擎读取变量_Php_Class_Smarty - Fatal编程技术网

Php 使用smarty引擎读取变量

Php 使用smarty引擎读取变量,php,class,smarty,Php,Class,Smarty,我对Smarty很陌生,有点麻烦。我有一个PHP类,我们称它为a。在a中,有一个方法,称它为M,其中我想获取一个变量,$var,取整数值1或2,并在HTML页面上使用它,称它为mypage.HTML,它是另一个HTML页面的一部分,称它为mypage.HTML 在相同的方法中,我在smarty assign中分配HTML代码,如下所示: $this->mySmarty->assign('content', $this->fetch('mypage.html')); 然后我显示

我对Smarty很陌生,有点麻烦。我有一个PHP类,我们称它为a。在a中,有一个方法,称它为M,其中我想获取一个变量,$var,取整数值1或2,并在HTML页面上使用它,称它为mypage.HTML,它是另一个HTML页面的一部分,称它为mypage.HTML

在相同的方法中,我在smarty assign中分配HTML代码,如下所示:

$this->mySmarty->assign('content', $this->fetch('mypage.html'));
然后我显示:

$this->display('MyPage.html'); 
但奇怪的是,当我将smarty变量var分配给我的PHP变量var时,如下所示:

$this->mySmarty->assign('var', $var);
…页面MyPage.html无法识别以下内容:

{if $var==1}<span>blabla<span>{/if}

有人知道问题出在哪里吗?这是一个错误的smarty语法吗?

在代码中,您似乎这样做了

$this->mySmarty->assign('content', $this->mySmarty->fetch('mypage.html'));
在分配变量之前。你应该试试

$this->mySmarty->assign('var', $var);
$this->mySmarty->assign('content', $this->mySmarty->fetch('mypage.html'));
$this->mySmarty->display('MyPage.html'); 
但预渲染模板然后将其指定给变量感觉有些不自然。查看@ddlshack solution以获得更聪明的解决方案。

最好使用函数,而不是呈现模板然后将其分配给变量

$this->mySmarty->assign('contentTemplate', 'myPage.html');
然后

关于您的问题,代码是正确的,因此$var的值一定不是您期望的值

var_dump($var);

代码{if$var==1}blabla{/if}在哪里?它在mypage.html中吗?嗨,是的,它在mypage.html中@纽本,页面显示的是什么?它是忽略您的条件,还是只是不处理smarty代码?不,它只是忽略条件。最佳秒应该很棒!!效果很好。因此,通过你的回答,我完全理解了bugg的意思。谢谢,新英格兰,我试试:-!最好的,纽本
var_dump($var);