1. 程式人生 > >Smarty語法(條件判斷,迴圈,檔案引用)

Smarty語法(條件判斷,迴圈,檔案引用)

一,條件判斷

條件修飾符有: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: