Smarty:assign函數(shù)

2018-10-14 11:13 更新

{assign}

{assign}用于在模板運(yùn)行期間賦值給變量.

溫馨提示:

在模板中進(jìn)行賦值,從根本上講還是將程序邏輯放到顯示層來(lái)進(jìn)行了,在PHP端進(jìn)行此操作會(huì)更好。請(qǐng)自行考慮。

參見(jiàn)賦值給變量方法的縮寫(xiě)


屬性:

參數(shù)名稱類型必選參數(shù)默認(rèn)值說(shuō)明
varstringYesn/a被賦值的變量名
valuestringYesn/a賦的值
scopestringNon/a變量的作用范圍: 'parent','root' 或 'global'

可選標(biāo)記:

名稱說(shuō)明
nocache對(duì)賦值操作不進(jìn)行緩存

Example 7.8. {assign}

{assign var="name" value="Bob"}
{assign "name" "Bob"} {* short-hand *}

The value of $name is {$name}.

輸出:

The value of $name is Bob.

Example 7.9. {assign} 使用nocache屬性

{assign var="name" value="Bob" nocache}
{assign "name" "Bob" nocache} {* short-hand *}

The value of $name is {$name}.

輸出:

The value of $name is Bob.

Example 7.10. {assign} 進(jìn)行數(shù)學(xué)運(yùn)算

{assign var=running_total value=$running_total+$some_array[$row].some_value}

Example 7.11. {assign} 在調(diào)用的模板內(nèi)的作用范圍

在包含的模板內(nèi)賦值的變量,在包含模板內(nèi)可見(jiàn)。

{include file="sub_template.tpl"}
...
{* display variable assigned in sub_template *}
{$foo}<br>
...

上面的模板是包含了下面的模板sub_template.tpl

...
{* foo will be known also in the including template *}
{assign var="foo" value="something" scope=parent}
{* bar is assigned only local in the including template *}
{assign var="bar" value="value"}
...

Example 7.12. {assign} 作用范圍例子

設(shè)置變量訪問(wèn)范圍為root,然后該變量在相關(guān)模板里面都可見(jiàn)。

{assign var=foo value="bar" scope="root"}

Example 7.13. {assign} 賦值一個(gè)全局變量

全局變量在任何模板內(nèi)均可見(jiàn)。

{assign var=foo value="bar" scope="global"}
{assign "foo" "bar" scope="global"} {* short-hand *}

Example 7.14. 從PHP腳本中獲取{assign} 的變量

可以使用 getTemplateVars()在PHP腳本中獲取{assign}的變量值。 這里的模板創(chuàng)建了變量$foo

{assign var="foo" value="Smarty"}

當(dāng)模板被執(zhí)行時(shí)/執(zhí)行后,可以用以下的方式在PHP獲取到這個(gè)模板變量。

<?php

// this will output nothing as the template has not been executed
echo $smarty->getTemplateVars('foo');

// fetch the template to a variable
$whole_page = $smarty->fetch('index.tpl');

// this will output 'smarty' as the template has been executed
echo $smarty->getTemplateVars('foo');

$smarty->assign('foo','Even smarter');

// this will output 'Even smarter'
echo $smarty->getTemplateVars('foo');

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)