zoukankan      html  css  js  c++  java
  • SMARTY 变量

    变量
    模板变量以美元符号$开头,由字母、数组和下划线组成,和 PHP variable相似。 变量可以引用数字索引或非数字索引的数组,对象的属性和方法等。
    
    配置变量 是例外的,它不是以美元符号$开头,而是放到两个井号中间#hashmarks#, 或者通过 $smarty.config来使用。
    
    Example 3.2. 变量
    
    
    {$foo}        <-- 显示简单的变量 (非数组/对象)
    {$foo[4]}     <-- 在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[4].baz}
    {$foo[4].$baz}
    {$foo.bar.baz[4]}
    {$foo->bar($baz,2,$bar)} <-- 传递参数
    {"foo"}       <-- 静态值
    
    {* 显示服务器的环境变量"SERVER_NAME" ($_SERVER['SERVER_NAME'])*}
    {$smarty.server.SERVER_NAME}
    
    数学运算和嵌入标签:
    
    {$x+$y}                             // 显示x加y的和
    {assign var=foo value=$x+$y}        // 和用于赋值
    {$foo[$x+3]}                        // 作为下标使用
    {$foo={counter}+3}                  // 标签内的标签
    {$foo="this is message {counter}"}  // 在双引号内的标签
    
    定义数组:
    
    {assign var=foo value=[1,2,3]}
    {assign var=foo value=['y'=>'yellow','b'=>'blue']}
    {assign var=foo value=[1,[9,8],3]}   // 可嵌套
    
    缩写方式:
    
    {$foo=$bar+2}
    {$foo = strlen($bar)}               // 函数赋值
    {$foo = myfunct( ($x+$y)*3 )}       // 函数参数
    {$foo.bar=1}                        // 赋值给特定的数组元素
    {$foo.bar.baz=1}                    
    {$foo[]=1}                          // 附加到数组
    
    Smarty 点号语法:
    
    {$foo.a.b.c}        =>  $foo['a']['b']['c'] 
    {$foo.a.$b.c}       =>  $foo['a'][$b]['c']         // 变量下标
    {$foo.a.{$b+4}.c}   =>  $foo['a'][$b+4]['c']       // 表达式下标
    {$foo.a.{$b.c}}     =>  $foo['a'][$b['c']]         // 嵌套下标
    
    类似PHP的语法,另一种点号的语法:
    
    {$foo[1]}             // 一般的
    {$foo['bar']}
    {$foo['bar'][1]}
    {$foo[$x+$x]}         // 下标可以是各种表达式
    {$foo[$bar[1]]}       // 嵌套下标
    {$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()}
  • 相关阅读:
    用X++读取文本文件(txt文件)的例子
    找出整个AX系统使用某个扩展类型的所有表和字段
    关于代码操作AOT
    检查所有表Relations是否为unknown
    strSplit分隔文本以container返回
    POJ 1850, Code
    用匈牙利算法求二分图的最大匹配(转载)
    POJ 2533, Longest Ordered Subsequence
    POJ 1159, Palindrome
    POJ 3252, Round Numbers
  • 原文地址:https://www.cnblogs.com/archoncap/p/4917309.html
Copyright © 2011-2022 走看看