Documentación offline PHP master

call_user_func_array

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

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`
bar() con 2 argumentos $foo = new foo; call_user_func_array(array($foo, "bar"), array("three", "four")); ?>
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
"two", "first" => "one")); // Llamar a la función foobar() con un argumento nombrado call_user_func_array("foobar", array("foo", "second" => "bar")); // Error fatal: No se puede usar un argumento posicional después de un argumento nombrado call_user_func_array("foobar", array("first" => "one", "bar")); ?>

```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_func y call_user_func_array no 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