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