PHPUtilプラグイン(その12・条件判断後半)

先日の続きで、PHPUtilプラグインでの条件判断を取り上げます。

1.配列/ハッシュの要素での条件判断

配列やハッシュの要素を、条件判断の対象として使うこともできます。
MTPHPSetVarタグ等と同様に、nameモディファイアで要素を指定するか、index/keyモディファイアで要素を指定します。

例えば、配列usersの1番の要素の値が「yamada」の時に何か処理をするには、以下のように書きます。

<mt:PHPIf name="users" index="1" eq="yamada">
  配列usersの1番の要素の値が「yamada」の時の処理
</mt:PHPIf>

また、上記でindexモディファイアを使う代わりに、「name="users[1]"」と書いても同じ動作になります。

なお、MTPHPElseIfタグを使って、配列/ハッシュの同じ要素に複数の条件を判断する場合、name/index/keyモディファイアを省略して、比較のモディファイアだけを指定することができます。
例えば、上記の例で、「yamada」と比較した後で「tanaka」とも比較する場合、MTPHPElseIfタグを以下のように書くことができます。

<mt:PHPElseIf eq="tanaka">

2.opモディファイアによる計算

opモディファイアを指定して、比較対象の変数で何らかの計算をしてから、条件判断を行うこともできます。
opモディファイアの書き方は、MTPHPSetVarタグの場合と同様です。

例えば、変数xに5を足した値が10になった時に、何か処理を行うには、以下のように書きます。

<mt:PHPIf name="x" op="+" value="5" eq="10">
  変数xに5を足した値が10になった時の処理
</mt:PHPIf>

3.issetモディファイア

変数が定義されているかどうかで処理を分けたい場合、「isset」というモディファイアを使って以下のように書きます。

<mt:PHPIf name="変数名" isset="1">
  変数が定義されている時の処理
</mt:PHPIf>

index/keyモディファイアを指定したり、nameモディファイアで番号やキーを指定して、配列/ハッシュの要素が定義されているかどうかで処理を分けることもできます。

4.likeモディファイアによる正規表現検索

変数に文字列が代入されている時に、その文字列を正規表現で検索して、条件に合うときだけ何か処理を行うには、「like」というモディファイアを使います。

<mt:PHPIf name="変数名" like="正規表現">
 変数の値が正規表現に合う時の処理
</mt:PHPIf>

例えば、変数strの文字列に「Movable Type」か「MT」を含むときだけ何か処理をしたい場合は、以下のように書きます。

<mt:PHPIf name="str" like="(Movable Type|MT)">
  変数strの文字列に「Movable Type」か「MT」を含むときの処理
</mt:PHPIf>

5.PHPUtilプラグイン関係の記事の一覧

PHPUtil関係のその他の記事は、以下のリンクから参照できます。