Smarty 上で配列や連想配列の中身をループさせて使う機会は多いのですが、いざループを通さずに制御したい場合にどうしようかと考えました。
PHP のスクリプト内では count() 関数を利用することが多いと思うのですが、Smarty の標準関数にないかと調べたところ、@count で配列の要素数を算出することが可能のようです。
1 2 3 4 5 6 | // 要素数の表示 {assign var="num" value=$arrList@count} {$num} // 分岐で使用する場合 {if $arrList@count > 0} {/if} |
ビュー側を表示する前にスクリプトで制御しておけばいいのですが、Smarty は想像以上に小回りがききます。
最近はフレームワークも多くて Smarty が使われる機会も減っているのでしょうか?
Laravel だと blade が標準ですしね。