smarty register_function问题
传入数组里的值到params,但结果不是传入的值如果单是传入$p.uid的值是没有问题,但现在须要id_$p.uid$p=array('uid'=>'1','name'=>'abc');function func_tester($params,&$smarty){
//print_r($params);
$smarty->assign('args',$params['args']);
}$smarty->register_function("tester","func_tester");
$smarty->assign("p",$p);
$smarty->display("test.tpl");<p>uid: {$p.uid}</p>
<p>name: {$p.name}</p>
{tester args=id_$p.uid}
<p>args: {$args}</p>
smarty编译后<?php echo func_tester(array('args' => "id_".($this->_tpl_vars['p']).".uid"), $this);?>
结果args: id_Array.uid

解决方案 »

  1.   

    那是因为Smarty没有你要求的那种直接的功能我刚才把你东东在我的电脑上修改了一下,并且运行了,应该是你要的结果,就是在function func_tester($params,&$smarty){
        //print_r($params);
        $smarty->assign('args',$params['args']);
    }将$smarty->assign('args',$params['args']);改为
    $smarty->assign('args','id'.$params['args']);