【问题标题】:Smarty local variable concatenation with stringSmarty 局部变量与字符串的连接
【发布时间】:2012-06-24 01:21:18
【问题描述】:

如何为本地模板变量分配一个串联的字符串,如下所示:

{$yes_src=const1.'yes'.const2}

{$yes_src}的方式在下面的代码中使用。

【问题讨论】:

标签: php smarty


【解决方案1】:

你这样做的方式是调用assign的“短格式”,你只需要使用correct quoting mechanism

 {$yes_src="`$const1`yes`$const2`"}

使用assign:

{assign var="yes_src" val="`$const1`yes`$const2`"}

使用cat

{$const1|cat:"yes"}{$const2}

您也可以简单地将变量并排放置而不将其分配给变量:

{$const1}yes{$const2}

...不需要变量。

备注如果您发现自己使用assign 的次数超过很少,您可能会对将逻辑与表示分离的想法产生误解。通常,连接和其他变量工作将在涉及模板之前在 PHP 中完成。模板的作用是只是显示数据,你应该避免在模板中创建或更改数据。

文档

【讨论】:

  • Smarty3 还允许 {$yes_src = "{$cont1}yes{$const2}"}
【解决方案2】:
{ $yes_src = $variable|cat:"some string"|cat:$variable }

【讨论】:

  • 在需要包含引号的连续字符串时很有价值,因为反引号不适用于撇号。 {assign 'myLoc' '|cat:{$smarty.config.LOCALE_STR}|cat:""}
【解决方案3】:

试试这个:

{capture assign=yes_src}{$const1}.'yes'.{$const2}{/capture}

然后使用新的变量:

{$yes_src}

【讨论】:

  • 这是金!
猜你喜欢
  • 2011-01-10
  • 1970-01-01
  • 2021-08-18
  • 1970-01-01
  • 1970-01-01
  • 2018-01-02
  • 2014-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多