W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
模板變量以美元符號(hào)$開(kāi)頭,由字母、數(shù)組和下劃線組成,和 PHP variable相似。 變量可以引用數(shù)字索引或非數(shù)字索引的數(shù)組,對(duì)象的屬性和方法等。
配置變量 是例外的,它不是以美元符號(hào)$開(kāi)頭,而是放到兩個(gè)井號(hào)中間#hashmarks#, 或者通過(guò) $smarty.config
來(lái)使用。
Example 3.2. 變量
{$foo} <-- 顯示簡(jiǎn)單的變量 (非數(shù)組/對(duì)象) {$foo[4]} <-- 在0開(kāi)始索引的數(shù)組中顯示第五個(gè)元素 {$foo.bar} <-- 顯示"bar"下標(biāo)指向的數(shù)組值,等同于PHP的$foo['bar'] {$foo.$bar} <-- 顯示以變量$bar值作為下標(biāo)指向的數(shù)組值,等同于PHP的$foo[$bar] {$foo->bar} <-- 顯示對(duì)象屬性 "bar" {$foo->bar()} <-- 顯示對(duì)象成員方法"bar"的返回 {#foo#} <-- 顯示變量配置文件內(nèi)的變量"foo" {$smarty.config.foo} <-- 等同于{#foo#} {$foo[bar]} <-- 僅在循環(huán)的語(yǔ)法內(nèi)可用,見(jiàn){section} {assign var=foo value='baa'}{$foo} <-- 顯示"baa", 見(jiàn){assign} 更多合成變量的方式: {$foo.bar.baz} {$foo.$bar.$baz} {$foo[4].baz} {$foo[4].$baz} {$foo.bar.baz[4]} {$foo->bar($baz,2,$bar)} <-- 傳遞參數(shù) {"foo"} <-- 靜態(tài)值 {* 顯示服務(wù)器的環(huán)境變量"SERVER_NAME" ($_SERVER['SERVER_NAME'])*} {$smarty.server.SERVER_NAME} 數(shù)學(xué)運(yùn)算和嵌入標(biāo)簽: {$x+$y} // 顯示x加y的和 {assign var=foo value=$x+$y} // 和用于賦值 {$foo[$x+3]} // 作為下標(biāo)使用 {$foo={counter}+3} // 標(biāo)簽內(nèi)的標(biāo)簽 {$foo="this is message {counter}"} // 在雙引號(hào)內(nèi)的標(biāo)簽 定義數(shù)組: {assign var=foo value=[1,2,3]} {assign var=foo value=['y'=>'yellow','b'=>'blue']} {assign var=foo value=[1,[9,8],3]} // 可嵌套 縮寫(xiě)方式: {$foo=$bar+2} {$foo = strlen($bar)} // 函數(shù)賦值 {$foo = myfunct( ($x+$y)*3 )} // 函數(shù)參數(shù) {$foo.bar=1} // 賦值給特定的數(shù)組元素 {$foo.bar.baz=1} {$foo[]=1} // 附加到數(shù)組 Smarty 點(diǎn)號(hào)語(yǔ)法: {$foo.a.b.c} => $foo['a']['b']['c'] {$foo.a.$b.c} => $foo['a'][$b]['c'] // 變量下標(biāo) {$foo.a.{$b+4}.c} => $foo['a'][$b+4]['c'] // 表達(dá)式下標(biāo) {$foo.a.{$b.c}} => $foo['a'][$b['c']] // 嵌套下標(biāo) 類似PHP的語(yǔ)法,另一種點(diǎn)號(hào)的語(yǔ)法: {$foo[1]} // 一般的 {$foo['bar']} {$foo['bar'][1]} {$foo[$x+$x]} // 下標(biāo)可以是各種表達(dá)式 {$foo[$bar[1]]} // 嵌套下標(biāo) {$foo[section_name]} // smarty {section} 存取, 非數(shù)組存取! 變量構(gòu)造變量: $foo // 一般的變量 $foo_{$bar} // 變量名包含了其他變量 $foo_{$x+$y} // 變量名包含了表達(dá)式 $foo_{$bar}_buh_{$blar} // 更復(fù)雜的 {$foo_{$x}} // 如$x = 1,那么將顯示$foo_1的值 對(duì)象鏈: {$object->method1($x)->method2($y)} PHP函數(shù)直接使用: {time()}
雖然Smarty可以處理很復(fù)雜的表達(dá)式和語(yǔ)法,但是最好的方式還是 保持模板語(yǔ)法的簡(jiǎn)潔,模板層專注于顯示。 如果發(fā)現(xiàn)你的模板語(yǔ)法過(guò)于復(fù)雜,那么建議是將這些邏輯代碼寫(xiě)到PHP里, 然后在模板中通過(guò)插件或者修飾器來(lái)調(diào)用。
服務(wù)器請(qǐng)求的變量,如$_GET
, $_SESSION
也可以通過(guò) $smarty
變量來(lái)進(jìn)行獲取。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: