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);
 
?>

Inserisci un commento:


Il contenuto di questo campo è tenuto riservato e non verrà reso pubblico.

Condividi

Se ti piace questo articolo, puoi collegarlo al tuo sito copiando il seguente codice HTML nelle tue pagine.

Acquista libri di informatica

Acquista qui il tuo software

Ultimi commenti