call_user_func_array
En esta página
call_user_func_array
Llama a una función de retorno con los argumentos agrupados en un array
Descripción#
call_user_func_array(callable $callback, array $args): mixed
```php
Llama a la función de retorno `callback` proporcionada con los argumentos `args`, agrupados en un array.
## Parámetros
`callback`
La función de retorno a llamar.
`args`
Los argumentos a pasar a la función de retorno, en forma de array.
Si las claves de `args` son todas numéricas, las claves son ignoradas y cada elemento será transmitido a `callback` como argumento posicional, en el orden.
Si algunas claves de `args` son strings, estos elementos serán transmitidos a `callback` como argumentos nombrados, con el nombre dado por la clave.
No es permitido tener una clave numérica en `args` que aparezca después de una clave de string, o tener una clave de string que no corresponda al nombre de algún parámetro de `callback`
## Valores devueltos
Retorna el valor retornado por la función de retorno, o `false` si ocurre un error.
## Historial de cambios
| Versión | Descripción |
|----|----|
| 8.0.0 | Las claves `args` serán interpretadas como nombres de parámetros, en lugar de ser ignoradas silenciosamente. |
## Ejemplos
Ejemplo con `call_user_func_array`
Resultado del ejemplo anterior es similar a:
foobar recibió one y two
foo::bar recibió three y four
Ejemplo con `call_user_func_array` utilizando un espacio de nombres
El ejemplo anterior mostrará:
¡Hola Hannes!
¡Hola Philip!
Uso de una función lambda
El ejemplo anterior mostrará:
int(8)
Pasando un valor por referencia
El ejemplo anterior mostrará:
function mega $a=55
global $bar=55
`call_user_func_array` utilizando argumentos nombrados
```php
Resultado del ejemplo anterior es similar a:
foobar recibió one y two
foobar recibió foo y bar
Fatal error: Uncaught Error: Cannot use positional argument after named argument
Notas#
[!NOTE] Las devoluciónes de llamada registradas con funciones como
call_user_funcycall_user_func_arrayno serán llamadas si una excepción no es interceptada cuando ha sido lanzada en una función de devolución de llamada anterior.
Véase también#
call_user_func, ReflectionFunction::invokeArgs, ReflectionMethod::invokeArgs