テンプレートエンジンの繰り返し処理に必要な多次元の連想配列

テンプレートエンジンの自作を考える時に、テンプレート変数の処理は簡単に出来ます。
PHPの関数のreplaceなどを使えば処理できるからです。
これらの単純な処理だけではどうしても実現できないのが繰り返しの要素です。

例えばテーブルを作成するようなことがテンプレートで必要で、テーブルの各要素になにか別な値を入れたいなどの用途には繰り返す処理がどうしても出てくるからです。
PHPの中からHTMLのタグを出力するのは簡単ですが、テンプレートのシステムは、あくまでもHTMLをそのまま処理したいわけです。テンプレートを作る人がPHPを知らなくても良いからです。

htmltemplate.incでは繰り返しを次の様な感じで書きます。
<!--{each hoge_loop}-->
{val hoge_loop/hogehoge}

<!--{/each}-->

このhoge_loopとhogehogeが配列の要素のキーになっています。
{val hoge_loop/hogehoge}は、配列に格納されている値を出力します。

で、問題はこの複雑な多次元配列をどう作るかですが・・・

$Dimension = array(
'hoge_loop' => array(
array( 'hogehoge' => '一回目です' ),
array( 'hogehoge' => '二回目です' ),
array( 'hogehoge' => '三回目です' )
)
);

とこんな感じのものになるでしょう。
少々変則な多次元配列で、2+2次元とでも言うものでしょうか。
$Dimension['hoge_loop'][0]['hogehoge'] = '一回目です';
$Dimension['hoge_loop'][1]['hogehoge'] = '二回目です';
$Dimension['hoge_loop'][2]['hogehoge'] = '三回目です';

と書く事で表現できるので、あり得ないものではないのです。
システム系の言語ではこういうことはなかなかしませんが
連想配列では十分に表現できる範囲です。

この表現を使えばHTMLのタグを繰り返したい数だけループで回すことが可能です。
実際には、配列に値がある限り繰り返すという内部処理になっています。




nice!(0)  コメント(0)  トラックバック(0)  [編集]

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました
Copyright © アフィリエイターの為の野良プログラミング入門 All Rights Reserved.
当サイトのテキスト・画像等すべての転載転用、商用販売を固く禁じます

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。