mtde.info

Movable Type Developers Express

MTSetVarにおけるfunctionモデファイア(push関数)

2008年2月 1日 20:39 | Writer: apstar | 記事本文

MTSetVarテンプレートタグにおけるfunctionモデファイアの中で、pushという関数がありますが、これは「配列変数の一番上(または一番最後)に新しい値を追加する」という機能を持ちます。

例えば、testVar[ ]という配列があり、要素が0から10までとします。MTSetVarで同じ変数名(testVar)を指定しつつfunctionモデファイアでpushという関数を指定すると、valueモデファイアで指定した値をセットしつつ配列の一番最後へデータを追加できます。

書式例

<MTSetVar name="testVar" function="push" value="11">

図解

実行前

  • 変数名:値
  • testVar[0]:0
  • testVar[1]:1
  • testVar[2]:2
  • testVar[3]:3
  • testVar[4]:4
  • testVar[5]:5
  • testVar[6]:6
  • testVar[7]:7
  • testVar[8]:8
  • testVar[9]:9
  • testVar[10]:10

<MTSetVar name="testVar" function="push" value="11">を追加すると...

  • 変数名:値
  • testVar[0]:0
  • testVar[1]:1
  • testVar[2]:2
  • testVar[3]:3
  • testVar[4]:4
  • testVar[5]:5
  • testVar[6]:6
  • testVar[7]:7
  • testVar[8]:8
  • testVar[9]:9
  • testVar[10]:10
  • testVar[11]:11

一連のテストコード例

<!-- 元データを準備 -->
<MTFor var="x" from="0" to="10">
<MTSetVar name="testVar[$x]" value="$x">
</MTFor>

<!-- 元データを出力 -->
<MTFor var="x" from="0" to="15">
<MTGetVar name="x">:<MTGetVar name="testVar[$x]"><br />
</MTFor>

<!-- 配列最後の要素へデータを追加 -->
<MTSetVar name="testVar" function="push" value="11">

<!-- もう一度元データを出力 -->
<MTFor var="x" from="0" to="15">
<MTGetVar name="x">:<MTGetVar name="testVar[$x]"><br />
</MTFor>

短縮形

このコードは、<MTSetVar name="push(testVar)" value="11">と記述することもできます。

SetVar系

2008 mtde.info