あるサイトの改修を行っていて、テンプレートエンジンのSimplateを触っています。
ループ文のループの回数を指定がなかなかできず、エラーに対処するのに少し苦労しました。
Simplateでループ文
配列をループするためには<{section}>
タグを使用します。
ループの回数を指定するにはloop属性(たいていは配列)を使用します。
エラーが起きるコードと正常なコード
一見同じように見えるコードですが、何が違うか分かりますか?
(タイトルから予想付いているかもしれませんが)
エラーが起きるコード
下が問題のコードです。
<{section name=i loop=range(0, 10)}>
<P><{$array[i]}><p>
<{/section}>
正常なコード
問題なく動くコードです。
<{section name=i loop=range(0,10)}>
<P><{$array[i]}><p>
<{/section}>
まとめ
上の答えは、range関数のパラメータ間に空白があるかどうかです。
なぜ、関数のパラメータ間に空白があると動作しないかはわかっていませんが、
for文で回数を指定したい場合には、パラメータ間の空白に注意してください。