在樣版裡,我們可以透過Smarty預先定義好的變數,以存取PHP中的全域變數(SuperGlobals)
Smarty 保留變數 | 等同的PHP變數 |
$smarty.get | $_GET |
$smarty.post | $_POST |
$smarty.request | $_REQUEST |
$smarty.session | $_SESSION |
$smarty.cookies | $_COOKIE |
$smarty.env | $_ENV |
$smarty.server | $_SERVER |
$smarty.const | 利用define函式定義的常數 |
另一種方法(3.xx)
$row@first:第一次執行foreach
$row@last:最後1次執行 foreach
$row@index:取得迴圈的計數值 0、1、2、........
$row@total:取得迴圈執行總數
<section> <div class="container"> <h1>成績單</h1> <table class="table table-hover table-bordered"> <{foreach $rows as $row}> <{if $row@first}> <tr> <th>序</th> <th>姓名</th> <th>國文</th> <th>英文</th> <th>社會</th> </tr> <{/if}> <tr> <{assign var=conuter value=$row@index+1}> <td><{$conuter}></td> <td><{$row.name}></td> <td><{$row.chinese}></td> <td><{$row.english}></td> <td><{$row.society}></td> </tr> <{if $row@last}> <tr> <th colspan=5>總共有:<{$row@total}>人</th> </tr> <{/if}> <{/foreach}> </table> </div> </section>
php
$rows[0]['name']="東方不敗"; $rows[0]['chinese']=89; $rows[0]['english']=60; $rows[0]['society']=70; $rows[1]['name']="楊過"; $rows[1]['chinese']=60; $rows[1]['english']=80; $rows[1]['society']=66; $rows[2]['name']="小龍女"; $rows[2]['chinese']=50; $rows[2]['english']=100; $rows[2]['society']=90; $smarty->assign('rows', $rows);
在樣板中,Smarty 也可以直接拿PHP的函數來用,我們稱之為「變數修飾器」,例如:
變數後面要加上 |
| 後面加上函數名稱,函數需要的參數用 : 格開
例:得到檔案名稱
<{$SCRIPT_NAME|basename}>