MTSetVarにおけるfunctionモデファイア(unshift関数)
MTSetVarテンプレートタグにおけるfunctionモデファイアの中で、unshiftという関数がありますが、これは「配列変数の一番下(または一番最初)に新しい値を追加する」という機能を持ちます。
例えば、testVar[ ]という配列があり、要素が0から10までとします。MTSetVarで同じ変数名を指定しつつ functionモデファイアでunshiftという関数を指定すると、valueモデファイアで指定した値をセットしつつ配列の一番最初へデータを追加できます。
unshiftでのデータ挿入においては、pushとは異なり、unshiftで挿入したデータ以後は今までのデータと配列要素は1つずつずれるというのが注意するべき点です。
書式例
<MTSetVar name="testVar" function="unshift" 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="unshift" value="11">を追加すると...
- 変数名:値
- testVar[0]:11
- testVar[1]:0
- testVar[2]:1
- testVar[3]:2
- testVar[4]:3
- testVar[5]:4
- testVar[6]:5
- testVar[7]:6
- testVar[8]:7
- testVar[9]:8
- testVar[10]:9
- testVar[11]:10
一連のテストコード例
<!-- 元データを準備 -->
<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="unshift" value="11">
<!-- もう一度元データを出力 -->
<MTFor var="x" from="0" to="15">
<MTGetVar name="x">:<MTGetVar name="testVar[$x]"><br />
</MTFor>
短縮形
このコードは、<MTSetVar name="unshift(testVar)" value="11">と記述することもできます。
- ページ先頭へ
- 前のエントリ: MTSetVarにおけるfunctionモデファイア(push関数)
- 次のエントリ: MTSetVarにおけるfunctionモデファイア(undef関数)
- カテゴリ:SetVar系