我想知道是否可以将数组分配给Smarty模板文件中的变量?我试过这个
{assign var='file' value = array('dir','doc','exe')}
但是当我打印出阵列时,它产生了这个:
array(\'dir\',\'doc\',\'exe\')
如何阻止Smarty转义数组值?
提前致谢
答案 0 :(得分:47)
{php}
$this->assign("array", array('dir','doc','exe'));
{/php}
{foreach from=$array item=item}
{$item}
{/foreach}
来自 Smarty v.3 新语法可用
{$array = ['item1','item2',$item3]}
有关详细信息,请参阅:http://www.smarty.net/docs/en/language.syntax.variables.tpl
答案 1 :(得分:43)
我刚刚找到另一个答案here,允许您在不使用{php} tags的情况下执行此操作(Smarty推荐)
{assign var='icon' value=','|explode:"dir,doc,exe"}
仍然愿意接受更多的想法......
答案 2 :(得分:9)
{$system=['freebsd','windows','macosx','linux']}
怎么办?
答案 3 :(得分:0)
$smarty->assign("lat",$lat);
{foreach $lat as $latlongval}
{assign var="myArray" value=","|explode:$latlongval}
{$myArray['0']}
{$myArray['1']}
{/foreach}
答案 4 :(得分:-1)
在smarty模板文件中编写代码的方法不正确。你应该在php中创建一个数组,然后从smarty中获取值。
This is the right way to create a standard development code. like.
PHP:
public function arrSam(){
$colors = array( 0 => '#1f1f1f', 1 => '#696969', 2 => '#878787', 3 => '#b4b4b4', 4 => '#d2d2d2', 5 => '#f0f0f0', 6 => '#ffffff');
$smarty->assign('colors', $colors);
}
<强> Smarty的:强>
{assign var=colors value=$smarty->arrSam()}
{$colors|print_r}