普通變量與保留變量
1,普通變量
一共有兩種聲明普通變量的方法。
第一種:上面的例子已經(jīng)使用過,即在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='ipnx.cn'} 我們網(wǎng)站的網(wǎng)址是:{$add} </body> </html>
運行結(jié)果:
使用:{$add}
注意:也可以定義與使用數(shù)組。假若上面定義的add為一個一維數(shù)組,使用時即:{$add[2]},{$add['aa']},{$add.aa}等等使用方式。
2,保留變量
?Smarty中有一個特殊的變量(就是smarty)可以通過這個變量很容易就可以訪問到一些環(huán)境變量。就像PHP中的超全局變量一樣神奇。
? ? ? 注意:在使用這個保留變量的時候:smarty是對于大小寫敏感的,我們需要的是小寫的smarty
例子:
一、使用smarty訪問PHP中的超全局數(shù)組變量:
1、獲取$_GET?? ??{$smarty.get.name}??? 獲取get中的name值
2、獲取$_POST??? {$smarty.post.name}?? 獲取post中的name值
3、獲取$_COOKIE? {$smarty.cooke.name}? 獲取cookie中的name值
同理,還可以獲取$_SERVER,?$_ENV?和?$_SESSION等等
注意:雖然Smarty提供了較方便直接訪問PHP超全局變量的方法,但必須謹慎使用。 直接訪問超全局變量會弄亂應(yīng)用程序底層代碼和模板語法。 最佳的實踐是從PHP將需要的變量對模板進行賦值再使用。
二、獲取當(dāng)前時間戳
{$smarty.now}其原理就是調(diào)用了time()函數(shù)
三、直接訪問PHP常量
{$smarty.const.常量名}即{$smarty.const.AGE}
PHP定義常量
運行結(jié)果:
四、其他
獲取配置變量:{$smarty.config}
返回當(dāng)前模板名稱:{$smarty.template}
返回當(dāng)前模板對象:{$smarty.template_object}
返回當(dāng)前目錄名稱:{$smarty.current_dir}
等等