使用sprintf的smarty自定义修改器,将多个参数传递给函数

时间:2012-10-27 15:04:38

标签: php smarty smarty3

如何扩展$insert以便我可以将多个参数传递给函数,例如 {"Sample text %s this more %s."|inject:$foo:$foo2}

目前它仅适用于1个参数。

/**
 * Smarty inject modifier plugin
 *
 * Type:     modifier<br>
 * Name:     inject<br>
 * Purpose:  sprintf with a IF empty wrapper
 *
 */
function smarty_modifier_inject($string, $insert)
{
    if(!empty($insert))
        return sprintf($string, $insert);
}

1 个答案:

答案 0 :(得分:1)

你必须修改inject函数以获取任意数量的参数,如下所示:

function inject(){
    $args = func_get_args();
    if(count($args) > 1){
        return call_user_func_array('sprintf', $args);
    }
}