Smarty变量连接

时间:2017-07-02 09:23:54

标签: php smarty

我有这样的事情:

<select class="form-control" name="activ">
 {if {$smarty.session.admin['access']['pages:list:activ']} == '1'}
   <option value="1">{#L_YES#}</option>
   <option value="0">{#L_NO#}</option>
 {else}
   <option value="0">{#L_NO#}</option>
 {/if}
</select>

我需要将['pages:list:activ']更改为['{$smarty.get.module}:list:activ']

我该怎么做?

1 个答案:

答案 0 :(得分:0)

这里有多个选项..

首先,当您使用单引号时,PHP不会解析变量。

所以

$a = 'string';
echo '$test with something';

将输出:

$test with something

但是如果你使用:

$a = 'string';
echo "$test with something";

echo "{$test} with something";

将输出:

string with something

但是对于Smarty,如果你在名称中使用.->,这将不起作用,因为你必须在变量周围使用反引号,如下所示(注意它周围的双引号):

{if {$smarty.session.admin['access']["`$smarty.get.module`:list:activ"]} == '1'}

有关详细信息,请参阅:Smarty Embedding Vars in Double Quotes

您还可以使用cat修饰符并将连接值分配给var:

{assign var = "moduleList" value = $smarty.get.module|cat:":list:activ"}
{if {$smarty.session.admin['access'][$moduleList]} == '1'}