变量
模板变量以美元符号$开头,由字母、数组和下划线组成,和 PHP variable相似。 变量可以引用数字索引或非数字索引的数组,对象的属性和方法等。 配置变量 是例外的,它不是以美元符号$开头,而是放到两个井号中间#hashmarks#, 或者通过 $smarty.config来使用。 Example 3.2. 变量 {$foo} <-- 显示简单的变量 (非数组/对象)
{$foo[]} <-- 在0开始索引的数组中显示第五个元素
{$foo.bar} <-- 显示"bar"下标指向的数组值,等同于PHP的$foo['bar']
{$foo.$bar} <-- 显示以变量$bar值作为下标指向的数组值,等同于PHP的$foo[$bar]
{$foo->bar} <-- 显示对象属性 "bar"
{$foo->bar()} <-- 显示对象成员方法"bar"的返回
{#foo#} <-- 显示变量配置文件内的变量"foo"
{$smarty.config.foo} <-- 等同于{#foo#}
{$foo[bar]} <-- 仅在循环的语法内可用,见{section}
{assign var=foo value='baa'}{$foo} <-- 显示"baa", 见{assign} 更多合成变量的方式: {$foo.bar.baz}
{$foo.$bar.$baz}
{$foo[].baz}
{$foo[].$baz}
{$foo.bar.baz[]}
{$foo->bar($baz,,$bar)} <-- 传递参数
{"foo"} <-- 静态值 {* 显示服务器的环境变量"SERVER_NAME" ($_SERVER['SERVER_NAME'])*}
{$smarty.server.SERVER_NAME} 数学运算和嵌入标签: {$x+$y} // 显示x加y的和
{assign var=foo value=$x+$y} // 和用于赋值
{$foo[$x+]} // 作为下标使用
{$foo={counter}+} // 标签内的标签
{$foo="this is message {counter}"} // 在双引号内的标签 定义数组: {assign var=foo value=[,,]}
{assign var=foo value=['y'=>'yellow','b'=>'blue']}
{assign var=foo value=[,[,],]} // 可嵌套 缩写方式: {$foo=$bar+}
{$foo = strlen($bar)} // 函数赋值
{$foo = myfunct( ($x+$y)* )} // 函数参数
{$foo.bar=} // 赋值给特定的数组元素
{$foo.bar.baz=}
{$foo[]=} // 附加到数组 Smarty 点号语法: {$foo.a.b.c} => $foo['a']['b']['c']
{$foo.a.$b.c} => $foo['a'][$b]['c'] // 变量下标
{$foo.a.{$b+}.c} => $foo['a'][$b+]['c'] // 表达式下标
{$foo.a.{$b.c}} => $foo['a'][$b['c']] // 嵌套下标 类似PHP的语法,另一种点号的语法: {$foo[]} // 一般的
{$foo['bar']}
{$foo['bar'][]}
{$foo[$x+$x]} // 下标可以是各种表达式
{$foo[$bar[]]} // 嵌套下标
{$foo[section_name]} // smarty {section} 存取, 非数组存取! 变量构造变量: $foo // 一般的变量
$foo_{$bar} // 变量名包含了其他变量
$foo_{$x+$y} // 变量名包含了表达式
$foo_{$bar}_buh_{$blar} // 更复杂的
{$foo_{$x}} // 如$x = 1,那么将显示$foo_1的值 对象链: {$object->method1($x)->method2($y)} PHP函数直接使用: {time()}

最新文章

  1. [转]看部电影,透透彻彻理解IoC(你没有理由再迷惑!)
  2. MySQL优化实例
  3. YbSoftwareFactory 代码生成插件【十九】:实体类配合数据库表字段进行属性扩展的小技巧
  4. jquery change dropdownlist selected option
  5. [AngularJS] AngularJS系列(4) 中级篇之指令
  6. [第三方]SCNetworkReachability 获取网络状态控件使用方法
  7. APP设计师拿到APP产品原型开始,七步搞定APP设计(转)
  8. 3.PopupWindow 、拍照、裁剪
  9. 使用UDEV绑定ASM多路径磁盘
  10. [设计模式] .NET设计模式笔记 - 了解设计模式
  11. linux xxd 命令
  12. Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤
  13. HDU 2722 Here We Go(relians) Again
  14. 排序与检索【UVa10474】Where is the Marble?
  15. 003.ASP.NET Core tutorials--【Asp.net core 教程】
  16. html的基本结构
  17. 程序一 用记事本建立文件src.dat,其中存放若干字符。编写程序,从文件src.dat中读取数据,统计其中的大写字母、小写字母、数字、其它字符的个数,并将这些数据写入到文件test.dat中。
  18. 实现qsort(和qsort差一个数量级啊,伤自尊了)
  19. 在jQuery中解决事件冒泡问题
  20. docvalue and fielddata

热门文章

  1. 在matlab中clear,clc,clf,hold作用介绍
  2. jquery-qrcode 生成和读取二维码
  3. Helpers.parallel_bulk in Python not working?
  4. 转: Android Studio你不知道的调试技巧
  5. ckeditor 前段js配置toolbar以及取值(实用)
  6. TestNG系列之:TestNG基本注解(注释)
  7. C# Meta Programming - Let Your Code Generate Code - 利用反射重写自动的ToString()
  8. Jenkins高速上手
  9. WindowManager.LayoutParams全解
  10. Visual studio之C#跨线程调用UI控件