È possibile accettare un numero variabile di argomenti per qualsiasi funzione, purché vi siano abbastanza per popolare tutti gli argomenti dichiarati.
<?php
function test ($a, $b) { }
test(3); // error
test(4, 5); // ok
test(6,7,8,9) // ok
?>
Per accedere agli argomenti in più senza nome passati a test()
, si utilizzano le funzioni func_get_args()
, func_num_args()
e func_get_arg($i)
:
<?php
// Requires at least one param, $arg1
function test($arg1) {
// func_get_args() returns all arguments passed, in order.
$args = func_get_args();
// func_num_args() returns the number of arguments
assert(count($args) == func_num_args());
// func_get_arg($n) returns the n'th argument, and the arguments returned by
// these functions always include those named explicitly, $arg1 in this case
assert(func_get_arg(0) == $arg1);
echo func_num_args(), "\n";
echo implode(" & ", $args), "\n";
}
test(1,2,3); // echo "1 & 2 & 3"
?>
abbastanza sicuro 'func_get_args () 'è ciò che in realtà si desidera utilizzare al posto di questa prima soluzione dettagliata. – Toskan