如果我在smarty模板文件中有( $abc },其中$abc是在PHP中使用nowdoc语法构造的,
$abc = <<<'EOT'
$key
EOT有没有办法让smarty先扩展$abc,然后扩展$abc中的内容,也就是扩展$key。现在,我在输出中得到了字符串文字$key,而不是$key内部的内容。
这样做的原因
我有一些片段,它们被复制得到处都是。我可以将这些tpl片段放在它们自己的文件中,但这会导致文件爆炸。所以我有一个包含这些片段的文件。但是我不能把这个大的通用代码段文件包含在所有地方。所以我最终构建了一个包含这些代码片段的PHP文件,然后在需要的地方使用这些变量。
发布于 2013-02-06 14:22:32
您可以使用smarty的eval-function,但正如PHP文档所说的那样,“在nowdoc中不能进行解析”。
你能用heredoc代替吗?
<?
$key = 'something';
$abc = <<<EOT
$key
EOT;
// {$abc} will print something;
?>发布于 2013-02-06 20:32:32
不确定这是否是你想要的,但是你有没有尝试过使用sprintf?
即
<?
$key = 'something';
$abc='there is %s here';所以
{$abc|sprintf:$key}会打印“这里有东西”
https://stackoverflow.com/questions/14722409
复制相似问题