Smarty:eval函數(shù)

2018-10-15 08:30 更新

{eval}

{eval}可以執(zhí)行變量顯示。它可用于執(zhí)行模板變量中的標(biāo)簽/變量, 或者來自于配置文件的標(biāo)簽/變量。

如果你提供了assign 屬性, {eval}函數(shù)的輸出將不會顯示,而是賦值給模板變量。

參數(shù)名稱類型必選參數(shù)默認(rèn)值說明
varmixedYesn/a需要執(zhí)行的變量或字符串
assignstringNon/a用于賦值的變量名

技術(shù)說明

  • 執(zhí)行變量的方式和執(zhí)行模板一樣,使用與模板相同的解析方式和安全機制。

  • 執(zhí)行變量的操作將在每次編譯的時候都會啟動,編譯版本的程序不會被保存! 然而如果你開啟了緩存設(shè)置,那么 模板的其余部分會被緩存。

  • 如果執(zhí)行的內(nèi)容不會經(jīng)常變化,或者被多次使用,可以考慮使用{include file="string:{$template_code}"}來代替。 這可以在編譯后被緩存(速度更快),而且也不會每次編譯都執(zhí)行。

Example 8.3. {eval}

這里有個配置文件,setup.conf.

emphstart = <strong>
emphend = </strong>
title = Welcome to {$company}'s home page!
ErrorCity = You must supply a {#emphstart#}city{#emphend#}.
ErrorState = You must supply a {#emphstart#}state{#emphend#}.

模板:

{config_load file='setup.conf'}

{eval var=$foo}
{eval var=#title#}
{eval var=#ErrorCity#}
{eval var=#ErrorState# assign='state_error'}
{$state_error}

將輸出:

This is the contents of foo.
Welcome to Foobar Pub & Grill's home page!
You must supply a <strong>city</strong>.
You must supply a <strong>state</strong>.

Example 8.4. 另一個{eval}例子

例子將顯示服務(wù)器名稱(大寫字母)和IP。 賦值的$str可以是來自于數(shù)據(jù)庫的查詢。

 
<?php
$str = 'The server name is {$smarty.server.SERVER_NAME|upper} '
       .'at {$smarty.server.SERVER_ADDR}';
$smarty->assign('foo',$str);
?>

模板是:

    {eval var=$foo}


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號