Sifter reference / IF, ELSE, ?
条件によって出力を制御するには、IF・ELSEを使用します。
また、1.1.3以降では?を使用した三項条件演算子風の記述も可能です。
また、1.1.3以降では?を使用した三項条件演算子風の記述も可能です。
書式
<!--@IF(条件式)-->
〜
[<!--@ELSE[(条件式)]-->]
〜
<!--@END_IF-->
または
<!--@?(条件式? 値1: 値2)-->
条件式
では、以下の表現を使用できます。
置換タグ | {変数名} |
---|---|
数値 | 12345 |
文字列 | 'ABC' |
算術演算子 | + - * / % |
ビット演算子 | & | ^ ~ |
比較演算子 | // PHP版で使用できる比較演算子 |
論理演算子 | and or xor not && || ! |
正規表現による パターンマッチ |
({変数名}=~/パターン/[imsx]) |
?を使用した記述方法で、値1
・値2
には置換タグや文字列を記述できます。
ただし、「:」「\」は「\」でエスケープします。
また、値1
・値2
にさらに条件式を記述してネストすることはできません。
例
変数の設定:
// PHP
$template->set_var('name1', 'Peavy');
$template->set_var('name2', 'Andre');
$template->set_var('value', 2);
$template->set_var('domain', 'www.mybdesign.com');
テンプレート:
<!--@IF({name1}=='Peavy')-->
He is Peavy.
<!--@END_IF-->
<!--@IF({name2}=='Victor')-->
He is Victor.
<!--@ELSE({name2}=='Andre')-->
He is Andre.
<!--@ELSE-->
I don't know him.
<!--@END_IF-->
<!--@IF({value}-2==0)-->
The value is 2.
<!--@END_IF-->
<!--@IF(({domain}=~/\.com$/))-->
The domain is ".com".
<!--@END_IF-->
The value is <!--@?({value}==2? {value}\:OK: {value}\:NG)-->.
実行結果:
He is Peavy.
He is Andre.
The value is 2.
The domain is ".com".
The value is 2:OK.