smarty->assign() 不评估代码?

smarty->assign() doesn't evaluate the code?

我正在编写一个 PHP-脚本,它将一些 html-代码分配给我的模板。

PHP-文件:

$smarty->assign("PLACEHOLDER", getCode());
$smarty->display('index.html');

function getCode(){ 
     return "{literal}some code which I want to get evaluated ...{/literal}"; 
}   

HTML-文件:

{$PLACEHOLDER}

我知道我可以使用 {eval var=$PLACEHOLDER} 而不是 {$PLACEHOLDER},这会完美地工作,唯一的问题是我有大约 500 个模板,我不会更改 html-所有这些的代码。有没有一种方法可以在我将代码分配给模板时直接评估代码?

使用{eval}

{eval} is used to evaluate a variable as a template. This can be used for things like embedding template tags/variables into variables or tags/variables into config file variables.

If you supply the assign attribute, the output of the {eval} function will be assigned to this template variable instead of being output to the template.

因此在您的 HTML-文件中使用以下内容:

{eval var=$PLACEHOLDER}