codecamp

Smarty:eval函数

{eval}

{eval}可以执行变量显示。它可用于执行模板变量中的标签/变量, 或者来自于配置文件的标签/变量。

如果你提供了assign 属性, {eval}函数的输出将不会显示,而是赋值给模板变量。

参数名称类型必选参数默认值说明
varmixedYesn/a需要执行的变量或字符串
assignstringNon/a用于赋值的变量名

技术说明

  • 执行变量的方式和执行模板一样,使用与模板相同的解析方式和安全机制。

  • 执行变量的操作将在每次编译的时候都会启动,编译版本的程序不会被保存! 然而如果你开启了缓存设置,那么 模板的其余部分会被缓存。

  • 如果执行的内容不会经常变化,或者被多次使用,可以考虑使用{include file="string:{$template_code}"}来代替。 这可以在编译后被缓存(速度更快),而且也不会每次编译都执行。

Example 8.3. {eval}

这里有个配置文件,setup.conf.

emphstart = <strong>
emphend = </strong>
title = Welcome to {$company}'s home page!
ErrorCity = You must supply a {#emphstart#}city{#emphend#}.
ErrorState = You must supply a {#emphstart#}state{#emphend#}.

模板:

{config_load file='setup.conf'}

{eval var=$foo}
{eval var=#title#}
{eval var=#ErrorCity#}
{eval var=#ErrorState# assign='state_error'}
{$state_error}

将输出:

This is the contents of foo.
Welcome to Foobar Pub & Grill's home page!
You must supply a <strong>city</strong>.
You must supply a <strong>state</strong>.

Example 8.4. 另一个{eval}例子

例子将显示服务器名称(大写字母)和IP。 赋值的$str可以是来自于数据库的查询。

 
<?php
$str = 'The server name is {$smarty.server.SERVER_NAME|upper} '
       .'at {$smarty.server.SERVER_ADDR}';
$smarty->assign('foo',$str);
?>

模板是:

    {eval var=$foo}


Smarty:cycle函数
Smarty:fetch函数
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

I.Smarty基础

1.Smart是什么?

II.Smarty模板设计师篇

6.Smarty复合修饰器

9.Smarty配置文件

10.Smarty调试控制台

III. 程序开发者篇

11. Smarty字符集编码

12.Smarty常量

13.Smarty成员变量

14.Smarty成员方法

17.Smarty高级特性

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }