Smarty雙引號中嵌入變量

2018-10-12 11:13 更新

雙引號中嵌入變量

  • Smarty可以識別出在雙引號中嵌套的變量值,這些變量名稱必須只包括 字母、數(shù)字和下劃線。 參見命名規(guī)則。

  • 另外,帶有其他字符的,如點(diǎn)號(.)或者 $object->reference形式的變量, 必須用`單引號`括起來。

  • Smarty3中允許在雙引號中嵌入Smarty的標(biāo)簽并運(yùn)行。 如果你需要在雙引號的變量上使用修飾器、插件或者PHP函數(shù)等,這是非常有用的。

Example 3.5. 例子

{func var="test $foo test"}              // 識別變量 $foo
{func var="test $foo_bar test"}          // 識別變量 $foo_bar
{func var="test `$foo[0]` test"}         // 識別變量 $foo[0]
{func var="test `$foo[bar]` test"}       // 識別變量 $foo[bar]
{func var="test $foo.bar test"}          // 識別變量 $foo (不是 $foo.bar)
{func var="test `$foo.bar` test"}        // 識別變量 $foo.bar
{func var="test `$foo.bar` test"|escape} // 引號外的修飾器!
{func var="test {$foo|escape} test"}     // 引號內(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'} // 必須用雙引號才能用變量值!

{* 當(dāng)變量包含了點(diǎn)號“.”,必須用單引號括起來 *}
{cycle values="one,two,`$smarty.config.myval`"}

{* 當(dāng)變量包含了點(diǎn)號“.”,必須用單引號括起來 *}
{include file="`$module.contact`.tpl"}

{* 點(diǎn)號后面跟著變量 *}
{include file="`$module.$view`.tpl"}

  

溫馨提示:

雖然Smarty能處理比較復(fù)雜的表達(dá)式和語法,但是最好保持模板語法的簡潔, 把關(guān)注的焦點(diǎn)放在顯示層面。如果你發(fā)現(xiàn)模板語法非常復(fù)雜,那么 最好把這些邏輯代碼轉(zhuǎn)移到插件或者修飾器上,用PHP代碼進(jìn)行編寫。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號