0

テンプレート ツールキットに switch case ステートメントを実装したいと考えています。私のコードは次のとおりです。

[% SWITCH myvar %]
[% CASE > 4 %]
Value is amplified
[% CASE < 1%]
Value is Deleted
[% CASE %]
Normal Value
[%END%]

「<」と「>」はスクリプト内の予期しないトークンであるというエラー メッセージが表示されます。誰でもこの問題を解決できますか? スクリプトの実行速度が低下するため、できれば IF ステートメントを使用したくありません。上記の他の代替手段はありますか。

前もって感謝します...

4

1 に答える 1

2

テンプレート コードは、細かいマニュアルで説明されているように、等価またはリスト内以外のものをサポートしていません。

CASEそうは言っても、ステートメントがコンパイルされて よりも高速に実行されるものになったら、私は非常に驚かれることでしょうIF ... ELSIF ... END。実際、私はどちらの構文もまったく同じものにコンパイルすることにお金をかけます。これを一連の三項演算子として記述することもできますが、速度に関しては違いはないと思います。

[%- IF myvar > 4;
        "Value is amplified";
    ELSIF myvar < 1;
        "Value is Deleted";
    ELSE;
        "Normal Value";
    END; -%]

...また...

[%- (myvar > 4) ? "Value is amplified" :
    (myvar < 1) ? "Value is Deleted" : "Normal Value" -%]
于 2012-08-24T00:37:58.673 に答える