Smarty 模板引擎教程(五)—内置函数方法

什么是内置函数, 内置函数是模板引擎的一部分, 用于实现模板中一些流程控制等结构的语句。 内置函数和自定义函数的区别在: 内置函数不能修改, 也不能创建和内置函数同名的自定义函数。

{php}...{/php} 可以在模板里使用PHP代码
{include file="footer.tpl"} 可以引入一个tpl文件
{include_php file='test.php'} 引入php文件,并执行
{config_load file="colors.conf"}  可以引入配置文件变量
{literal}...{/literal} 可以内嵌CSS和JS代码
{if}...{elseif}...{else}...{/if} 条件判断语句

Smarty 中的 if 语句和 php 中的 if 语句一样灵活易用,并增加了几个特性以适宜模板引擎. if 必须于 /if 成对出现. 可以使用 else 和 elseif 子句. 可以使用以下条件修饰词:eq、ne、neq、gt、lt、lte、le、gte、ge、is even、is odd、is not even、is not odd、not、mod、div by、even by、odd by、==、!=、>、<、<=、>=. 使用这些修饰词时必须和变量或常量用空格格开.

PS:if语句中条件修饰符的含义如下:

equal : 相等、 not equal: 不等于、 greater than: 大于、 less than: 小于、 less than or equal:小于等于、great than or equal:大于等于、is even:是偶数、is odd:是奇数、is not even: 不是偶数、is not odd:不是奇数、not:非、mod:取余、div by:被。 。 。除

{strip}...{/strip} 将代码中的空格压缩掉
{ldelim}...{rdelim} 左分隔符{和右分隔符}
{capture}...{/capture} 将包含的数据保存起来,指定输出
{insert} 和自定义函数类型,但有不被缓存的特点

Smarty提供了两组用于遍历和循环的函数,分别是foreach和section函数。他们会分别生成PHP中的foreach循环和for循环。
{foreach from=$arr key=key item=value}
    {$key}=>{$value}
{foreachelse}
没有任何数据
{/foreach} 遍历数组,一维循环

{foreach from=$arr key=key item=item name=lee}
    {foreach from=$item item=item}
    {$item}
    {/foreach}
<br />
{/foreach} 遍历数组,两位循环

{$smarty.foreach.lee.total} 循环次数

{section loop=$arr1 name=a}
    {$arr1[a]}
{sectionelse}
    没有任何数据
{/section} 循环数组

{section loop=$arr4 name=a}
    {$arr4[a].id}.{$arr4[a].name}.{$arr4[a].product}
    {section loop=$arr4[a].arr name=b}
    {$arr4[a].arr[b]}
{/section}
    <br />
{/section} 二维数组下还有一维的用法
赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址