现在的位置: 首页 > 综合 > 正文

如何在smarty模板中执行php代码

2014年08月09日 ⁄ 综合 ⁄ 共 698字 ⁄ 字号 评论关闭

Smarty模板主要的目的是分离逻辑层和表现层,所以在模板中不应该包含逻辑部分,逻辑层也不应该含有HTML。要在模板中插入逻辑程序的这种做法“非常”不被推荐,在你的case中。
如果你真正的需要在模板中使用脚本程序,smarty也提供了{php}标签,允许programmer在表现层混入php代码(再次提示:这种不利于逻辑层与表现层的分离,违背了程序与结构的分离)。看一看如何在模板中插入php代码:

phpCode.tpl:
{php}
  echo "There is php code in the template of smarty";
   for($i=1 ; $i<=3; $i++){
      echo "but it's better to avoid php code in your case!";
   }
 {/php}

 

phpCode.php 
 <?
 include("libs/smarty.class.php");
 $smarty = new smarty();
 $smarty->display("phpCode.tpl")
 ?>

注意:如果出现Fatal error: Uncaught exception 'SmartyException' with message '{php} is deprecated, set allow_php_tag = true to enable'。这是因为{php} 标签默认是关闭的,使用$smarty->allow_php_tag=true;开启即可。(注意此处的定界符默认为“{php}”,也可人为定义成“<!--{php}-->”)

注:同一smarty模板的各个php标签间的变量不通用,也就是说,某一php标签中定义的变量,其作用域仅限于本标签。

抱歉!评论已关闭.