首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Smarty变量扩展

Smarty变量扩展
EN

Stack Overflow用户
提问于 2013-02-06 13:46:27
回答 2查看 152关注 0票数 0

如果我在smarty模板文件中有( $abc },其中$abc是在PHP中使用nowdoc语法构造的,

代码语言:javascript
复制
$abc = <<<'EOT'
$key
EOT

有没有办法让smarty先扩展$abc,然后扩展$abc中的内容,也就是扩展$key。现在,我在输出中得到了字符串文字$key,而不是$key内部的内容。

这样做的原因

我有一些片段,它们被复制得到处都是。我可以将这些tpl片段放在它们自己的文件中,但这会导致文件爆炸。所以我有一个包含这些片段的文件。但是我不能把这个大的通用代码段文件包含在所有地方。所以我最终构建了一个包含这些代码片段的PHP文件,然后在需要的地方使用这些变量。

EN

回答 2

Stack Overflow用户

发布于 2013-02-06 14:22:32

您可以使用smarty的eval-function,但正如PHP文档所说的那样,“在nowdoc中不能进行解析”。

你能用heredoc代替吗?

代码语言:javascript
复制
<?
$key = 'something';
$abc = <<<EOT
$key
EOT;

// {$abc} will print something;
?>
票数 1
EN

Stack Overflow用户

发布于 2013-02-06 20:32:32

不确定这是否是你想要的,但是你有没有尝试过使用sprintf?

代码语言:javascript
复制
<?
$key = 'something';
$abc='there is %s here';

所以

代码语言:javascript
复制
 {$abc|sprintf:$key}

会打印“这里有东西”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14722409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档