func_get_args

(PHP 4, PHP 5, PHP 7, PHP 8)

func_get_argsReturns an array comprising a function's argument list

Descrizione

func_get_args(): array

Gets an array of the function's argument list.

This function may be used in conjunction with func_get_arg() and func_num_args() to allow user-defined functions to accept variable-length argument lists.

Elenco dei parametri

Questa funzione non contiene parametri.

Valori restituiti

Returns an array in which each element is a copy of the corresponding member of the current user-defined function's argument list.

Errori/Eccezioni

Generates a warning if called from outside of a user-defined function.

Esempi

Example #1 func_get_args() example

<?php
function foo()
{
$numargs = func_num_args();
echo
"Number of arguments: $numargs \n";
if (
$numargs >= 2) {
echo
"Second argument is: " . func_get_arg(1) . "\n";
}
$arg_list = func_get_args();
for (
$i = 0; $i < $numargs; $i++) {
echo
"Argument $i is: " . $arg_list[$i] . "\n";
}
}

foo(1, 2, 3);
?>

Il precedente esempio visualizzerà:

Number of arguments: 3 
Second argument is: 2
Argument 0 is: 1
Argument 1 is: 2
Argument 2 is: 3

Example #2 func_get_args() example of byref and byval arguments

<?php
function byVal($arg) {
echo
'As passed : ', var_export(func_get_args()), PHP_EOL;
$arg = 'baz';
echo
'After change : ', var_export(func_get_args()), PHP_EOL;
}

function
byRef(&$arg) {
echo
'As passed : ', var_export(func_get_args()), PHP_EOL;
$arg = 'baz';
echo
'After change : ', var_export(func_get_args()), PHP_EOL;
}

$arg = 'bar';
byVal($arg);
byRef($arg);
?>

Il precedente esempio visualizzerà:


As passed : array (
0 => 'bar',
)
After change : array (
0 => 'baz',
)
As passed : array (
0 => 'bar',
)
After change : array (
0 => 'baz',
)

Note

Nota:

As of PHP 8.0.0, the func_*() family of functions is intended to be mostly transparent with regard to named arguments, by treating the arguments as if they were all passed positionally, and missing arguments are replaced with their defaults. This function ignores the collection of unknown named variadic arguments. Unknown named arguments which are collected can only be accessed through the variadic parameter.

Nota:

Se gli argomenti sono passati per riferimento, ogni cambiamento degli argomenti si ripercuoterà sui valori restituiti da questa funzione.

Nota: This function returns a copy of the passed arguments only, and does not account for default (non-passed) arguments.

Vedere anche:

add a note

User Contributed Notes 1 note

up
13
cobrattila at gmail dot com
5 years ago
If you want to get the arguments by reference, instead of func_get_args() you can simply use

<?php
function args_byref(&...$args) {
// Modify the $args array here
}
?>

Credits should go to Markus Malkusch for pointing this out on Stackoverflow.
https://stackoverflow.com/a/29181826/1426064
To Top