4

私はSmartyの初心者です。smartyの配列要素に対してmod操作を実行したい。以下は、私が実装しようとしているコードスニペットです。

{if {$que_seq_no}.{$sub_ques_no+1} % 10 == 1}

それを修正するのを手伝ってくれませんか。前もって感謝します。

4

2 に答える 2

2

mod操作に受け入れ可能な構文を使用しています。変数で間違った構文を使用していると確信しています{$que_seq_no}.{$sub_ques_no+1}。試しました$que_seq_no[$sub_ques_no+1]か?

于 2013-05-31T03:36:28.747 に答える
2

質問タイトルへの回答

モジュロ演算子は%、交互になりmodます。
smartyで認識されている修飾子の詳細については、ドキュメントを参照してください:http ://www.smarty.net/docsv2/en/language.function.if

あなたの問題への答え

したがって、ご存知のように、モジュロ演算子は正しいです。
あなたの構文から私が推測できることから、あなたはおそらく配列インデックスによって配列の値にアクセスしようとしています。

配列アイテムにアクセスするには、次の2つの可能性があります。

  1. 配列キーによるアクセス-構文:$arrayVariable.key
  2. 配列インデックスによるアクセス-構文:($arrayVariable[index]インデックスは整数です)
    したがって、あなたの場合:$que_seq_no[$sub_ques_no+1]

オブジェクトプロパティにアクセスしようとしている場合:
配列キーによるアクセスに似ていますが、演算子は次の->ようになります。構文は次のとおりです。$objectVariable->propertyName

このsmartyドキュメントの詳細については、http ://www.smarty.net/docsv2/en/language.variables.tplを参照してください。

おそらくあなたを混乱させたもの

{}(中括弧) の使用法に少し混乱したと思います
-それらはスマートな表現全体{をラップするために使用されます-それから、それらは他のまたはを含むことができないことを意味します}
smartyドキュメントから抜粋したかなりの例は次のとおりです。

{if $name == 'Fred' || $name == 'Wilma'}
   ...
{/if}
于 2015-08-31T18:44:48.130 に答える