Smarty雙引號(hào)中嵌入變量

2018-10-12 11:13 更新

雙引號(hào)中嵌入變量

  • 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ě)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)