Liste variabili di argomenti
Fino ad ora abbiamo sempre creato funzioni con una lista finita di argomenti. Questo è infatti il caso più comune ma a volte in alcuni rari casi potremo avere la necessità di passare un numero variabile di argomenti e di non conoscere neanche quanti questi possano essere.
Per fare un esempio noto a molti la funzione printf del c è una di queste.
In PHP non dobbiamo fare assolutamente niente. La dichiarazione della funzione rimane identica a quella precedente. Potete infatti inserire un numero a piacere, ma anche uguale a zero, di argomenti.
Dopo di che potrete divertirvi chiamando la funzione con un numero di argomenti sempre diverso.
La parte all'interno della funzione cambia invece un po'. Dovrete infatti usare le funzioni func_num_args() che vi dirà quanti argomenti sono stati passati.
Per ottenere poi gli argomenti veri e propri dovrete usare una di queste due funzioni func_get_arg() e func_get_args().
La scelta è a vostra discrezione visto che fanno la stessa cosa. L'unica differenza è che la prima ritorna un solo argomento alla volta, la seconda ritorna tutti gli argomenti in un array.
<?php /* funzione che stampa la media tra due o più argomenti */ function media ($a, $b) { $tot = 0; $elem = func_get_args(); for ($i = 0; $i < count($elem); $i++) $tot += $elem[$i]; return (double)$tot / count($elem); } echo "la media tra 4 e 8 è:", media (4, 8); echo "\nla media tra 4,5,60,7,14 è:", media (4,5,60,7,14); ?>
-
» 2011-05-28
Come usare i Cookie con PHP -
» 2010-04-24
Sintassi alternativa -
» 2010-04-24
Return -
» 2010-04-24
Break
Se ti piace questo articolo, puoi collegarlo al tuo sito copiando il seguente codice HTML nelle tue pagine.
-
30-06-2011 → Anonimo
ha scritto un commento in
Tutorial sul ripristino di GRUB -
26-05-2011 → Bianca
ha scritto un commento in
Arrotondare gli angoli di un div usando i CSS 3 -
25-05-2011 → `wee`
ha scritto un commento in
Le landing page - Cosa sono e a cosa servono -
19-02-2011 → Anonimo
ha scritto un commento in
Linux Reference - Lista comandi utili per Linux -
06-01-2011 → Sergio
ha scritto un commento in
Ottimizzare i metatag delle pagine multilingua -
05-06-2010 → Anonimo
ha scritto un commento in
SQL - Data Manipulation Language - SELECT
Inserisci un commento: