La función func_get_arg() es una función incorporada en PHP que se utiliza para obtener un valor mencionado del argumento pasado como parámetro.
Sintaxis:
mixed func_get_arg( int $arg )
Parámetros: Esta función acepta un solo parámetro como se mencionó anteriormente y se describe a continuación.
- $arg: este parámetro contiene el desplazamiento del argumento donde el desplazamiento de los argumentos en el parámetro se cuenta asumiendo que el primer argumento es 0.
Valor devuelto: este método devuelve el argumento mencionado y devuelve FALSO si se produce un error.
Ejemplo 1:
<?php // Function definition function geeks($a, $b, $c) { // Calling func_get_arg() function echo "Print second argument: " . func_get_arg(1) . "\n"; } // Function call geeks('hello', 'php', 'geeks'); ?>
Producción:
Print second argument: php
¿Cuándo ocurre algún error?
El error se produce en dos casos.
- Si el valor del desplazamiento del argumento es mayor que el valor real de los argumentos pasados como parámetro de la función.
- Si esta función no se llama desde dentro de la función definida por el usuario.
<?php // Function definition function geeks($a, $b, $c) { // Printing the sixth argument // that doesn't exist echo "Printing the sixth argument: " . func_get_arg(5) . "\n"; } // Function call geeks('hello', 'php', 'geeks'); ?>
Producción:
Warning: func_get_arg(): Argument 5 not passed to function in [...][...] on line 4
Ejemplo:
<?php // Function definition function geeks($a, $b, $c) { $a = "Bye"; } // Function call geeks('hello', 'php', 'geeks'); // The func_get_arg() function // is called from outside the // user defined function echo "Printing the sixth argument: " . func_get_arg(5) . "\n"; ?>
Producción:
PHP Warning: func_get_arg(): Called from the global scope - no function context in /home/main.php on line 9
Para versiones anteriores a PHP 5.3: Obtener el argumento de una función tiene un enfoque diferente para las versiones de PHP anteriores a 5.3. Todas las versiones anteriores a 5.3 y 5.3 mostrarán un error para el siguiente código.
Ejemplo:
<?php function geeks() { include './testing.inc'; } geeks('Welcome', 'PHP', 'Geeks'); ?>
pruebas.inc:
<?php $parameter = func_get_arg(1); var_export($parameter); ?>
Producción:
'PHP' warnings
Nota: Para obtener más de un argumento , se puede usar la función func_get_args() en lugar de la función func_get_arg() .