我是Smarty的新手。我想在smarty中对数组元素执行mod操作。以下是我正在尝试实施的代码段:
{if {$que_seq_no}.{$sub_ques_no+1} % 10 == 1}
你可以帮我纠正一下吗?在此先感谢。
答案 0 :(得分:2)
您正在使用mod操作的可接受语法。我很确定你使用变量{$que_seq_no}.{$sub_ques_no+1}
的语法不正确。你试过$que_seq_no[$sub_ques_no+1]
吗?
答案 1 :(得分:2)
模运算符为%
,并且还具有替换mod
。
有关智能文件中公认的限定词的更多信息:http://www.smarty.net/docsv2/en/language.function.if
如您所知,您的模运算符是正确的。
根据我的语法猜测,你可能试图通过数组索引访问数组的值。
要访问数组项,您有两种可能:
$arrayVariable.key
$arrayVariable[index]
(索引是一个int数)$que_seq_no[$sub_ques_no+1]
如果您尝试访问对象属性:
它类似于数组键的访问,但运算符为->
,因此语法为:$objectVariable->propertyName
有关智能文档的更多信息:http://www.smarty.net/docsv2/en/language.variables.tpl
我认为您对{}
(花括号)的使用感到有些困惑
- 它们用于包装整个聪明的表达 - 因此它意味着它们不能包含任何其他{
或}
。
从智能文档中得到的一个很好的例子是:
{if $name == 'Fred' || $name == 'Wilma'}
...
{/if}