Вы можете создать функцию-оболочку с именем unroll_parameters
, определенную как показано ниже.
function unroll_params ($params, &$smarty) {
return call_user_func_array ($params['name'], $params['args']);
}
Это позволит вам использовать следующее:
{unroll_params name='someFunction' args=$assocArray}
Если вы хотите получить доступ к $smarty
внутри вызываемой функции, добавьте значение к $params['args']
перед вызовом call_user_func_array
.
return call_user_func_array (
$params['name'], array_merge ($params['args'], array ($smarty))
);
Примечание. Если объявление функции имеет вид: function foo ($var1,$var2, ..., $smarty)