模板语言
- <{ }>作为元素的定界符
- []包围的内容表示可有可无
- ( Part1 | Part2 )表示Part1或者Part2
模板语言输出块
{{ statements }}
用于输出内容,statements可以是变量,也可以是一定程度逻辑的表达式或者函数调用。支持的运算符和函数请查阅【输出块语法参考】。
输出块语法参考
运算符
. |
句点 |
访问数组元素或集合元素 详细 |
语法: 数组或集合类型 . 键名或索引
示例:
collectionVar.menber1 collectionVar.("menber3") collectionVar."menber2"
上面3种写法效果一样,但推荐第2种。第1种只有当键名符合标识符命名规则时才能使用。
arrVar . 0
arrVar.(0)
上面两种写法效果一样,但推荐第2种。第1种点号与数字间的空格不能少,否则将与小数冲突。
可以看到,带括号的第2种写法统一,便于记忆,因此推荐。
|
+ |
正号 |
表明一个数字是正数,没什么用 |
- |
负号 |
数值取负 |
! |
逻辑非 |
逻辑运算,非 |
++ |
左自增 |
++i,自身+1,然后返回i |
++ |
右自增 |
i++,返回i,然后自身+1 |
-- |
左自减 |
--i,自身-1,然后返回i |
-- |
右自减 |
i--,返回i,然后自身-1 |
** |
乘方 |
x**y,x的y次方 |
* |
乘 |
乘法运算 |
/ |
除 |
除法运算 |
% |
取余 |
取余,也叫模运算 |
\ |
整除 |
整除,不考虑余数。3 \ 2 = 1 |
+ |
加 |
加法运算 详细 |
语法:
v1 + v2
加号运算有两种模式,当v1是数值时,进行算数加法运算。当v1是字符串时,进行字符串连结运算。
|
- |
减 |
减法运算 |
& |
连结 |
作为字符串连结 |
> |
大于 |
比较运算,大于 |
< |
小于 |
比较运算,小于 |
>= |
大于等于 |
比较运算,大于等于 |
<= |
小于等于 |
比较运算,小于等于 |
!= |
不等于 |
比较运算,不等于 |
== |
等于 |
比较运算,等于 |
&& |
逻辑且 |
逻辑运算,且 |
|| |
逻辑或 |
逻辑运算,或 |
= |
赋值 |
赋值操作,新建/赋值一个变量可用它 |
, |
逗号 |
逗号左边只执行不算入结果,结果只取逗号右边 |
函数
if( condition, expr1[, expr2] )
condition条件达成就输出expr1,否则输出expr2(如果有的话)
示例: if( b1!=b2, 'hello world', 'error' ) if( a1>1000, 'hello world' )
|
htmlencode( str[, chrs = "&<> " ] )
htmldecode( str[, chrs = "&<> " ] )
HTML编码/解码,对html特殊字符进行换码操作。chrs表示换码的字符,支持4个字符:& 、< 、> 、 。
示例:
htmlencode('&&')
htmldecode('&&')
|
urlencode( str[, isComponent = false] )
urldecode( str[, isComponent = false] )
URL编码/解码,对URL特殊字符进行换码操作。isComponent表示是否视作URI Component进行换码操作。
|
substr( str[, start[, count]] )
取子串。start表示起始位置,count表示个数。
|
timeformat( utctime[, fmt = "<yr>-<mo>-<dy>T<h>:<m>:<s>" ] )
格式化输出UTC时间(秒)。fmt表示格式,有以下几种:
年<yr> 、月<mo> 、日<dy> 、时<h> 、分<m> 、秒<s>
示例:
timeformat(1482511001)
timeformat(1482511001,'<yr>-<mo>-<dy>')
|
base64encode(str)
base64decode(str)
base64编码/解码。
|
addslashes( str[, charlist = "\n\r\t\v\a\\'\"" ] )
stripslashes( str[, charlist = "\n\r\t\v\a\\'\"" ] )
给特殊字符加上/去掉反斜杠。charlist表示需要处理的特殊字符。
|
注意:虽然statements可以处理一定程度的逻辑,但是仅限于模板输出内容使用,如果是复杂的逻辑,请于ecp代码中处理。
模板语言元素
loop
<{loop=枚举对象 (键名索引名=值名 | 值名) [inverted=布尔值] }>
[<{loopelse}>]
<{/loop}>
loop元素的作用是遍历数组或集合变量,当枚举对象可得到数组或集合时才有用。
键名索引名
是可以省略的,只填一个值名
。
inverted表示是否反向枚举
注意:紫色部分的内容必须是小写的。
示例:
<{loop=arr1 elem }>
{{elem}}
<{/loop}>
<{loop=coll1 k=elem }>
{{ k + '=' + elem }}
<{/loop}>
for
<{for 变量名[=初始值] to=到值 [step=步进值] }>
[<{forelse}>]
<{/for}>
for元素的作用是数字循环。
注意:紫色部分的内容必须是小写的。
示例:
<{for i=0 to=100 }>
{{i}}
<{/for}>
<{for i=0 to=9 step=1}>
{{ arr1.(i) }}
<{/for}>
if
<{if=条件}>
[<{elseif=条件}>]
[<{else}>]
<{/if}>
if元素的作用是条件输出,可以有分支条件。
load
<{load=模板文件}>
load元素的作用是载入其他模板文件。路径相对于当前模板文件路径。