Prima di tutto, si sta usando il termine "polimorfismo" completamente sbagliato. Il polimorfismo è un concetto nella programmazione orientata agli oggetti e non ha nulla a che fare con il numero variabile di argomenti nelle funzioni.
Nella mia esperienza, tutto lo func_get_args
consente di aggiungere un po 'di zucchero sintattico.
Pensa a una funzione che può richiedere un numero qualsiasi di numeri interi e restituire la loro somma. (Sto imbrogliando, poiché questo esiste già in array_sum
. Ma l'inganno è buono se mantiene semplice l'esempio). Si potrebbe fare in questo modo:
// you can leave "array" out; I have it because we should be getting one here
function sum1(array $integers) {
return array_sum($integers);
}
Ora si potrebbe chiamare questo modo:
$sum = sum1(array(1));
$sum = sum1(array(1, 2, 3, 4));
Questo non è molto carina.Ma possiamo fare meglio:
function sum2() {
$integers = func_get_args();
return array_sum($integers);
}
Ora si può chiamare in questo modo:
$sum = sum2(1);
$sum = sum2(1, 2, 3, 4);
http://us2.php.net/manual/en/function.func-get-arg.php Scorri fino a 'Esempi', quindi leggi' Note relative all'utente ' – drudge
'sprintf' e' max' sono buone esempi di funzioni che possono gestire un numero arbitrario di argomenti. Di solito lo si vuole usare con parametri tipizzati in modo uniforme. – mario
Non intendi "polimorfo": il termine che stai cercando è "variadic": http://en.wikipedia.org/wiki/Variadic_function –