Parâmetros PHP call_user_func () e call_user_func_array ()

Os parâmetros para call_user_func()e call_user_func_array()não são passados ​​por referência.

$function = function (&$p) {
echo $p
;
};
$param
= '123';

call_user_func
($function, $param);
// or
call_user_func_array
($function, [$param]);

Você receberá uma mensagem de erro como PHP Warning: Parameter 1 to {closure}() expected to be a reference, value given.

Para corrigir isso, você pode usar o seguinte:

$function($param);
// or
call_user_func_array
($function, [&$param]);