エスケープとif条件

バックスラッシュによるエスケープ + #if 条件分岐構文

1. バックスラッシュ \ エスケープルール

事前定義変数:#set($dog = "woof woof")

VTLコード出力結果仕様解説
$dogwoof woof変数を通常通り展開
\$dog$dogバックスラッシュ1つ:直後の$をエスケープ、変数展開を無効にし文字通り出力
\\$dog\woof woof1つ目の\が2つ目の\をエスケープ→\を出力;
残りの$dogは変数展開される
\\\$dog\$dog\\\出力、\$$出力
\\\\$dog\woof woof\\\\\\を出力;
$dogが変数展開
  1. Velocityの変数名は文字から始める必要があり$10.0は変数と認識されずそのまま出力。マイクロソフト$10.0ドルのような記述にはエスケープ不要;
  2. 連続するバックスラッシュは2つごとに相殺\$の組み合わせだけがドル記号をエスケープ可能;
  3. ページ上に$変数名をそのまま表示するには標準で\$dogを使う。

2. #if による条件分岐構文

#set($ages = 22)
#if ($ages <13)
    <h1>あなたは子供です</h1>
#elseif ($ages <18)
    <h1>あなたは少年です</h1>
#elseif ($ages <35)
    <h1>あなたは青年です</h1>
#elseif ($ages <60)
    <h1>あなたは中年です</h1>
#else
    <h1>あなたは高齢者です</h1>
#endCode language: PHP (php)
実行結果

$ages=22、条件 22 < 35 に該当 → 出力:<h1>あなたは青年です</h1>

注意点
  1. ブロック終端には必ず#endを記述。省略すると構文エラー;
  2. キーワード:#elseif#else if と空白を入れてはいけません、これは不正な書き方);
  3. 条件で利用可能:< > <= >= == != && || などの演算子;
  4. 上から順に判定し、最初に条件成立した分岐だけ実行、以降の分岐は実行されない。

エスケープとif条件

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です