W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Smarty可以識(shí)別出在雙引號(hào)中嵌套的變量值,這些變量名稱(chēng)必須只包括 字母、數(shù)字和下劃線。 參見(jiàn)命名規(guī)則。
另外,帶有其他字符的,如點(diǎn)號(hào)(.)或者 $object->reference
形式的變量, 必須用`單引號(hào)`
括起來(lái)。
Smarty3中允許在雙引號(hào)中嵌入Smarty的標(biāo)簽并運(yùn)行。 如果你需要在雙引號(hào)的變量上使用修飾器、插件或者PHP函數(shù)等,這是非常有用的。
Example 3.5. 例子
{func var="test $foo test"} // 識(shí)別變量 $foo {func var="test $foo_bar test"} // 識(shí)別變量 $foo_bar {func var="test `$foo[0]` test"} // 識(shí)別變量 $foo[0] {func var="test `$foo[bar]` test"} // 識(shí)別變量 $foo[bar] {func var="test $foo.bar test"} // 識(shí)別變量 $foo (不是 $foo.bar) {func var="test `$foo.bar` test"} // 識(shí)別變量 $foo.bar {func var="test `$foo.bar` test"|escape} // 引號(hào)外的修飾器! {func var="test {$foo|escape} test"} // 引號(hào)內(nèi)的修飾器! {func var="test {time()} test"} // PHP函數(shù)結(jié)果 {func var="test {counter} test"} // 插件的結(jié)果 {func var="variable foo is {if !$foo}not {/if} defined"} // Smarty區(qū)塊函數(shù)
Example 3.6. 例子
{* 將使用$tpl_name的值 *} {include file="subdir/$tpl_name.tpl"} {* 不使用$tpl_name的值 *} {include file='subdir/$tpl_name.tpl'} // 必須用雙引號(hào)才能用變量值! {* 當(dāng)變量包含了點(diǎn)號(hào)“.”,必須用單引號(hào)括起來(lái) *} {cycle values="one,two,`$smarty.config.myval`"} {* 當(dāng)變量包含了點(diǎn)號(hào)“.”,必須用單引號(hào)括起來(lái) *} {include file="`$module.contact`.tpl"} {* 點(diǎn)號(hào)后面跟著變量 *} {include file="`$module.$view`.tpl"}
雖然Smarty能處理比較復(fù)雜的表達(dá)式和語(yǔ)法,但是最好保持模板語(yǔ)法的簡(jiǎn)潔, 把關(guān)注的焦點(diǎn)放在顯示層面。如果你發(fā)現(xiàn)模板語(yǔ)法非常復(fù)雜,那么 最好把這些邏輯代碼轉(zhuǎn)移到插件或者修飾器上,用PHP代碼進(jìn)行編寫(xiě)。
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)系方式:
更多建議: