Smarty語法(條件判斷,迴圈,檔案引用)
阿新 • • 發佈:2018-12-21
一,條件判斷
條件修飾符有:eq(==), neq(!=) gt(>), lt(<)
php: $smarty->assign('score', 60); tpl: {if $score gt 70} 優秀 {elseif $score gt 60} 及格 {else} 不及格 {/if}
show:
條件修飾符必須用空格與變數和常量分開。
二,迴圈語句
1,section迴圈
php: $articlelist = array( array( "title" => "第一篇", "author" => "小王", "content" => "這是第一篇文章" ), array( "title" => "第二篇", "author" => "小馬", "content" => "這是第二篇文章" ) ); $smarty->assign('articlelist', $articlelist); tpl: {section name=article loop=$articlelist} {$articlelist[article].title} {$articlelist[article].author} {$articlelist[article].content} <br> {/section}
show:
沒有資料時,可以用{sectionelse}
section中的屬性:
name:(必選) 是section迴圈的名稱只是標示迴圈唯一的名字沒有特別意義,前面沒有$符號;
loop: (必選)是在php宣告中的變數名稱,用來標示是迴圈哪一個陣列(即要迴圈陣列名)需要使用$;
start: (可選)迴圈執行的初始位置. 如果該值為負數,開始位置從陣列的尾部算起. 例如:如果陣列中有7個元素,指定start為-2,那麼指向當前陣列的索引為5. 非法值(超過了迴圈陣列的下限)將被自動調整為最接近的合法值.
step: (可選)如其它語言的迴圈,是一個步長,如果為負數,則倒序迴圈;
max:(可選)迴圈的最大下標,如果是1則只迴圈1次,如果為2則迴圈2次;
show:(可選)預設為true即顯示。如果設定了{sectionelse}。表示如果陣列沒有內容的時候顯示這部分的內容;如果show為false則顯示這部分。如果沒有設定{sectionelse}則不輸出該陣列。
2,foreach迴圈(可以使用PHP語法)
(1)
tpl: {foreach item=article from=$articlelist} {$article.title} {$article.author} {$article.content} <br> {foreachelse} 當前沒有文章 {/foreach}
(2)php原生
tpl: {foreach $articlelist as $article} {$article.title} {$article.author} {$article.content} <br> {/foreach}
tpl:
{foreach $names as $top=>$name} {$top} {$name} <br> {/foreach}
三,檔案引用:在Smarty語法中,引入函式只有include。
tpl1:
{include file="header.tpl" sitename="慕課網"}
tpl2:
{$sitename}
show: