如何在smarty中执行mod(%)操作?

时间:2013-02-09 12:12:41

标签: smarty

我是Smarty的新手。我想在smarty中对数组元素执行mod操作。以下是我正在尝试实施的代码段:

{if {$que_seq_no}.{$sub_ques_no+1} % 10 == 1}
你可以帮我纠正一下吗?在此先感谢。

2 个答案:

答案 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

回答您的问题

如您所知,您的模运算符是正确的。
根据我的语法猜测,你可能试图通过数组索引访问数组的值。

要访问数组项,您有两种可能:

  1. 按数组键访问 - 语法:$arrayVariable.key
  2. 按数组索引访问 - 语法:$arrayVariable[index](索引是一个int数)
    所以在你的情况下:$que_seq_no[$sub_ques_no+1]
  3. 如果您尝试访问对象属性: 它类似于数组键的访问,但运算符为->,因此语法为:$objectVariable->propertyName

    有关智能文档的更多信息:http://www.smarty.net/docsv2/en/language.variables.tpl

    可能让你困惑的是什么

    我认为您对{}(花括号)的使用感到有些困惑
    - 它们用于包装整个聪明的表达 - 因此它意味着它们不能包含任何其他{}。 从智能文档中得到的一个很好的例子是:

    {if $name == 'Fred' || $name == 'Wilma'}
       ...
    {/if}