詳細說明 Smarty 模板中條件判斷標籤的語法、比較運算子、邏輯運算子,並以二維關聯陣列遍歷為例,展示 if/elseif/else 在實際資料呈現中的應用。
{if $condition}
{...}
{elseif $condition2}
{...}
{else}
{...}
{/if}
| 運算子 | 別名 | 說明 |
|---|---|---|
== | eq | 等於 |
!= | ne, neq | 不等於 |
> | gt | 大於 |
< | lt | 小於 |
>= | gte, ge | 大於等於 |
<= | lte, le | 小於等於 |
=== | is | 全等(型別+值) |
and, &&(且)、or, ||(或)、not, !(非)
{* temp.tpl *}
<html>
<h2>Smarty if/elseif/else 範例</h2>
<p style="color:red">範例 1:排除特定鍵名</p>
{foreach from=$arr4 item=temp}
{foreach from=$temp item=value key=k}
{if $k neq "c3" and $k neq "n3"}
{$k} = {$value}<br />
{/if}
{/foreach}
{/foreach}
<p style="color:red">範例 2:依值內容分歧輸出</p>
{foreach from=$arr4 item=temp}
{foreach from=$temp item=value key=k}
{if $value eq "美女"}
你是個美女<br />
{else}
你們都是帥哥<br />
{/if}
{/foreach}
{/foreach}
</html>
<?php
$arr4 = [
['c1' => '北京', 'c2' => '上海', 'c3' => '廣州'],
['n1' => '關羽', 'n2' => '張飛', 'n3' => '美女']
];
$smarty->assign('arr4', $arr4);
$smarty->display('temp.tpl');
?>
範例 1: c1 = 北京 c2 = 上海 n1 = 關羽 n2 = 張飛 範例 2: 你們都是帥哥 你們都是帥哥 你們都是帥哥 你是個美女
$var ≠ $Var。{if $name eq 'admin'}。{elseif} 不能寫成 {else if}(會語法錯誤)。{if} 必須正確閉合 {/if}。善用 Smarty 條件判斷,能在模板層靈活控制呈現邏輯,減少 PHP 端資料預處理。