在 Smarty 字符串中转义变量

Escaping variables in Smarty strings

我想把一个变量的名字放在一个字符串里面,这样我就可以在字符串被计算成为变量的值之前定义这个变量。我该怎么做?

一些不同的尝试:

{assign var="test" value="$foo"}
{assign var="foo" value="bar"}
{eval var=$test}

结果:未定义索引:foo

{assign var="test" value="{$foo}"}
{assign var="foo" value="bar"}
{eval var=$test}

结果:未定义索引:foo

{assign var="test" value="\{$foo}"}
{assign var="foo" value="bar"}
{eval var=$test}

结果:未定义索引:foo

{assign var="test" value="$foo"}
{assign var="foo" value="bar"}
{eval var=$test}

结果:$foo

{assign var="test" value="{$foo}"}
{assign var="foo" value="bar"}
{eval var=$test}

结果:语法错误

{assign var="test" value="\{$foo}"}
{assign var="foo" value="bar"}
{eval var=$test}

结果:\bar

找到解决方法:使用单引号!

{assign var="test" value='{$foo}'}
{assign var="foo" value="bar"}
{eval var=$test}

结果:栏