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

PHPUtilプラグインでは、変数の値を使った条件判断を行うこともできます。
条件判断のテンプレートタグの書き方も、Movable Type標準のMTIfタグに極力合わせています。

1.MTPHPIfタグの基本的な書き方

条件判断を行うには、「MTPHPIf」というタグを使います。
基本的な書き方は以下の通りです。

<mt:PHPIf name="変数名" 比較演算子="比較対象">
  条件を満たす時に出力する内容
</mt:PHPIf>

「比較演算子」の箇所には、以下の表のいずれかを指定します。

比較演算子比較方法
eq比較対象と等しい
ne比較対象と異なる
lt比較対象より小さい
gt比較対象より大きい
le比較対象以下
ge比較対象以上

また、「比較対象」に、変数と比較する値を指定します。

例えば、変数xの値が10より小さい時だけ何かを出力するには、以下のような書き方をします。

<mt:PHPIf name="x" lt="10">
  変数xの値が10より小さい時に出力する内容
</mt:PHPIf>

2.真偽の判断

比較演算子のモディファイアを指定しない場合、変数の値が「真」(true)とみなせる場合のみ、MTPHPIfタグのブロック内が実行されます。
真の逆の値を、「偽」(false)と呼びます。
以下の値は偽とみなします。

  • 数値の0
  • 「0」の文字
  • 中身のない文字列
  • 要素がない配列/ハッシュ

また、変数がまだ定義されていない場合も、偽とみなします。

例えば、変数xが真とみなせる場合だけ何かを出力するには、以下のような書き方をします。

<mt:PHPIf name="x">
  変数xが真とみなせる時に出力する内容
</mt:PHPIf>

3.MTPHPElseIfタグ/MTPHPElseタグ

複数の条件を次々と判断して処理を分けるには、MTPHPIfタグのブロックの中で、MTPHPElseIf/MTPHPElseタグを使って以下のように書きます。

<mt:PHPIf 条件1>
  条件1を満たす時に出力する内容
<mt:PHPElseIf 条件2>
  条件2を満たす時に出力する内容
<mt:PHPElseIf 条件3>
  条件3を満たす時に出力する内容
  ・
  ・
  ・
<mt:PHPElseIf 条件n>
  条件nを満たす時に出力する内容
<mt:PHPElse>
  どの条件も満たさない時に出力する内容
</mt:PHPIf>

個々の条件の書き方は、MTPHPIfタグと同じです。
ただ、1つの変数に対して複数の条件を判断する場合、MTPHPElseIfタグでは「name="変数名"」のモディファイアを省略することができます。

例えば、以下のような料金表があるとします。

年齢料金
6歳以下500円
12歳以下1000円
上記以外2000円

年齢が変数yearに代入されているとすると、上記の料金を出力するには、以下のようにテンプレートを組みます。

<mt:PHPIf name="year" le="6">
500円
<mt:PHPElseIf name="year" le="12">
1000円
<mt:PHPElse>
2000円
</mt:PHPIf>

また、3行目のMTPHPElseIfタグでは、1行目と同じ変数(year)を条件判断に使っています。
したがって、3行目では「name="year"」のモディファイアを省略することもできます。

4.MTPHPUnlessタグ

条件が成立した時でなく、条件が成立しなかった時に何か処理をしたい時は、MTPHPUnlessというタグを使うこともできます。
書き方は以下のようになります。

<mt:PHPUnless name="変数名" 比較演算子="比較対象">
  条件を満たしていない時に出力する内容
</mt:PHPUnless>

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

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