Smartyで空の配列を宣言する方法
Smarty3を使うと、お手軽に空の配列を宣言することができます。
{assign var=myArray value=[]}
ところがSmarty2以下だとこの方法が使えません。 そこで、パイプを使って次のように記述すると、Smarty2以下でも空の配列が宣言できます。
{assign var=myArray value=","|explode:"a":-1}
これは、PHP5.1.0から可能になった、3番目の引数$limitに負の数を指定できるようになったことで可能になったテクニックです。
空の文字列 ("") が delimiter として使用された場合、 explode() は FALSE を返します。 delimiter に引数 string に含まれていない値が含まれている場合は、 limit が負の値なら 空の配列、そうでなければ 引数 string を含む配列を返します。
ですので、上の例にある「a」という引数や、「-1」というのは簡単な例として指定しただけで、上記ルールさえ満たしていれば他の文字や負の数値でも大丈夫ですよ。
2011-03-29