发新话题
打印

ArthurXF经验传授smarty变量连接解决方案

ArthurXF经验传授smarty变量连接解决方案

ArthurXF经验传授smarty变量连接解决方案 2008/03/01 01:30 ArthurXF

  此文章由ArthurXF(肖飞)倾情奉献!
  我们在使用smarty的时候,经常会碰到变量组合成新变量的时候,例如aaa$b,$b是可变值,我们需要得到$aaa1,$aaa2,$aaa3等变量.但是在smarty中,这样的变量连接写法是不允许的.

针对这样的问题,我给出下面几种情况的解决方案.
注:<?{和}?>是我定义的smarty定界符,等同于{和},希望大家理解.
引用
1.针对数组的变量连接问题:
<?php
$arrMType = array();
$arrMType[1] = '高交会展';
$arrMType[2] = '学术会议';
$arrData[id] = 1;
?>
在smarty中.
$arrMType[$arrData.id]是错误的.
解决方案:
<?{foreach from=$arrType key=key item=value}?>
<?{if $key == $arrData.type_id}?><?{$value}?><?{/if}?>
<?{/foreach}?>


2.针对文件引用的变量连接问题:
<?PHP
$page="index";
?>
在smarty中,下面的写法都是错误的.
<?{include file=$page.html}?> //这样不能执行成功
<?{include file=$page|cat:".html"}?> //还是不行
解决方案:
<?{include file="$page.html"}?>


3.针对函数传递的变量连接问题:
<?PHP
$arrGWeb['module_id'] = 'news';
?>
要在smarty中实现:
<?{url url = "/news/list?type_id=1"}?>
错误的写法:
<?{url url = "/$arrGWeb.module_id/list?type_id=1"}?>
正确的写法:
<?{url url = "/`$arrGWeb.module_id`/list?type_id=1"}?>
注意:"`"这个符号,是数字1前面的那个符号,不是单引号.





ArthurXF从业10年的CTO ,受聘于上海非凡进修学院进行PHPIT课程培训,有意学习者,可以免费试听个人BLOG:地址:http://www.bizeway.net/

TOP

发新话题