Smarty局部变量与字符串连接

alg*_*mus 29 php smarty

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

{$yes_src=const1.'yes'.const2}
Run Code Online (Sandbox Code Playgroud)

以下方式在代码中使用{$yes_src}.

Chr*_*ker 62

你这样做的方式是调用"简短形式" assign,你只需要使用正确的引用机制:

 {$yes_src="`$const1`yes`$const2`"}
Run Code Online (Sandbox Code Playgroud)

用途assign:

{assign var="yes_src" val="`$const1`yes`$const2`"}
Run Code Online (Sandbox Code Playgroud)

用途cat:

{$const1|cat:"yes"}{$const2}
Run Code Online (Sandbox Code Playgroud)

您也可以简单地将变量放在一起,而不将其分配给变量:

{$const1}yes{$const2}
Run Code Online (Sandbox Code Playgroud)

......不需要变量.

注意事项 如果您发现自己使用的assign次数很少,则可能对将逻辑与表示分离的想法存在误解.通常,在涉及模板之前,可以在PHP中完成连接和其他可变工作.模板的作用是仅显示数据,应避免在模板中创建或更改数据.

文档

  • Smarty3 还允许 {$yes_src = "{$cont1}yes{$const2}"} (2认同)

Rok*_*jan 12

{ $yes_src = $variable|cat:"some string"|cat:$variable }
Run Code Online (Sandbox Code Playgroud)


D-3*_*-32 7

试试这个:

{capture assign=yes_src}{$const1}.'yes'.{$const2}{/capture}
Run Code Online (Sandbox Code Playgroud)

然后使用新变量:

{$yes_src}
Run Code Online (Sandbox Code Playgroud)