(PHP 4, PHP 5, PHP 7, PHP 8)
func_get_args — Devuelve los argumentos de una función en forma de array
Recupera los argumentos de una función en forma de array.
func_get_arg() puede ser utilizado conjuntamente con func_num_args() y func_get_args() para permitir que las funciones de usuario acepten un número variable de argumentos.
Esta función no tiene parámetros.
Devuelve un array donde cada elemento es una copia del miembro correspondiente de la lista de argumentos de la función.
Generará una advertencia si es llamada fuera de una función.
Ejemplo #1 Ejemplo con func_get_args()
<?php
function foo()
{
$numargs = func_num_args();
echo "Número de argumentos : $numargs \n";
if ($numargs >= 2) {
echo "El segundo argumento es : " . func_get_arg(1) . "\n";
}
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++) {
echo "El argumento $i es : " . $arg_list[$i] . "\n";
}
}
foo(1, 2, 3);
?>
El resultado del ejemplo sería:
Número de argumentos : 3 El segundo argumento es : 2 El argumento 0 es : 1 El argumento 1 es : 2 El argumento 2 es : 3
Ejemplo #2 Ejemplo func_get_args() con argumentos por referencia y por valor
<?php
function byVal($arg) {
echo 'Tal como se pasó : ', var_export(func_get_args()), PHP_EOL;
$arg = 'baz';
echo 'Después del cambio : ', var_export(func_get_args()), PHP_EOL;
}
function byRef(&$arg) {
echo 'Tal como se pasó : ', var_export(func_get_args()), PHP_EOL;
$arg = 'baz';
echo 'Después del cambio : ', var_export(func_get_args()), PHP_EOL;
}
$arg = 'bar';
byVal($arg);
byRef($arg);
?>
El resultado del ejemplo sería:
Nota:
A partir de PHP 8.0.0, la familia de funciones func_*() está destinada a ser en su mayoría transparente con respecto a los argumentos con nombre, tratando los argumentos como si todos fueran pasados posicionalmente, y los argumentos faltantes son reemplazados por sus valores predeterminados. Esta función ignora la colección de argumentos variádicos con nombre desconocidos. Los argumentos con nombre desconocidos que se recopilan solo pueden accederse a través del parámetro variádico.
Nota:
Si los argumentos se pasan por referencia, cualquier cambio en ellos se verá reflejado en los valores devueltos por esta función. A partir de PHP 7, los valores actuales también serán devueltos si los argumentos son pasados por valor.
Nota: Esta función devuelve únicamente una copia de los argumentos pasados, y no cuenta ni trata los argumentos por defecto (no pasados).
...