普通變數與保留變數
1,普通變數
一共有兩種宣告普通變數的方法。
第一種:上面的範例已經使用過,即在index.php檔案中使用$smarty->assign('add',$add);
第二種:在範本檔案中宣告(html中),即{assign var='add' value='值'}
#程式碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <!--html的注释--> {*smarty模板的注释*} {assign var='add' value='www.php.cn'} 我们网站的网址是:{$add} </body> </html>
執行結果:
#
使用:{$add}
注意:也可以定義與使用陣列。假若上面定義的add為一維數組,使用式即:{$add[2]},{$add['aa']},{$add.aa}等使用方式。
2,保留變數
# Smarty中有一個特殊的變數(就是smarty)可以透過這個變數很容易就可以存取到一些環境變數。就像PHP中的超全域變數一樣神奇。
注意:使用這個保留變數的時候:smarty是大小寫敏感的,我們需要的是小寫的smarty
#例子:
一、使用smarty存取PHP中的超全域陣列變數:
1、取得$_GET {$smarty.get.name } 取得get中的name值
2、取得$_POST {$smarty.post.name} 取得post中的name值
###################################################################################################################################################1 3.取得$_COOKIE {$smarty.cooke.name} 取得cookie中的name值############ 同理,也可以取得$_SERVER, $_ENV 和 $_SESSION等等### #########注意:雖然Smarty提供了較方便直接存取PHP超全域變數的方法,但必須謹慎使用。直接存取超全局變數會弄亂應用程式底層程式碼和模板語法。最佳的實踐是###從PHP將需要的變數對模板進行賦值再使用。 ###############二、取得目前時間戳記############# {$smarty.now}其原理就是呼叫了time()函數## ##########三、直接存取PHP常數#######
{$smarty.const.常數名稱}即{$smarty.const.AGE}
PHP定義常數
#運行結果:
四、其他
取得設定變數:{$smarty.config}
傳回目前範本名稱:{$smarty.template}
傳回目前範本物件:{$smarty.template_object}
傳回目前目錄名稱:{$smarty .current_dir}