从特定值为 Smarty 中的 var 赋值

Assign value to var in Smarty from specific values

我可以分配这个吗:

{{$phone_numbers.0.phone_number}} 
{{if $phone_numbers.0.extension}} EXT. {{$phone_numbers.0.extension}}{{/if}}

到 Smarty3 中的变量?如何?我看过 assign 但我不知道如何使用它连接值,有帮助吗?

编辑:这是正确的方法吗?

你怎么看这个:

{{$phone_number=$phone.phone_number}}
{{if $phone.extension}} {{$phone_number|cat:"EXT. $phone.extension"}}{{/if}}

您不能在 {assign} but you can use {capture} 中使用条件:

{{capture name=foo assign=bar}}
  {{$phone_numbers.0.phone_number}} 
  {{if $phone_numbers.0.extension}} EXT. {{$phone_numbers.0.extension}}{{/if}}
{{/capture}}

这会呈现 {capture} 块的内容,但不会输出它。相反,它存储供以后使用。

您可以在 {$smarty.capture.foo} 或变量 {$bar} 中找到它。

assign属性是可选的;您不使用它并且变量 {$bar} (或您使用的任何名称)未被修改。但是,捕获的内容始终存储在变量 {$smarty.capture.foo}(或您为其使用的任何名称)中。

作为替代方法,在第二个示例中,正确的语法是:

{{$phone_number=$phone_numbers.0.phone_number}}
{{if $phone_numbers.0.extension}}
{{$phone_number=$phone_number|cat:" EXT. "|cat:$phone_numbers.0.extension}}
{{/if}}

然后使用{{$phone_number}}