Smarty 变量串联
Smarty variables concatenation
我有这样的东西:
<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']
我该怎么做?
这里有多种选择..
首先,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'}
我有这样的东西:
<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']
我该怎么做?
这里有多种选择..
首先,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'}