在 Smarty 模板中檢查陣列變數是否為空,常用於條件顯示區塊。本文介紹兩種簡潔寫法。
@count 修飾詞{if $myArray|@count neq 0}
<ul>
{foreach $myArray as $item}
<li>{$item.name}</li>
{/foreach}
</ul>
{else}
目前沒有資料
{/if}
@count 會呼叫 PHP count() 函數,回傳元素個數。neq 為「不等於」。
{if $myArray neq ""}
{* 陣列不為空 *}
{/if}
Smarty 會將陣列轉換為字串比較,空陣列轉為空字串,非空陣列轉為 Array 字串,故可直接判斷。
@count 需遍歷計數,效能較差;建議在 PHP 端預先計算 $count = count($arr) 傳給模板。neq "" 速度較快,語意清晰。$arr = []。