PHP/Programmazione/Funzioni personalizzate
In ogni linguaggio di programmazione esiste la possibilità di creare le proprie funzioni personalizzate; ciò è possibile ovviamente anche in PHP. La comodità della creazione di funzioni personalizzate risulta evidente nei casi di applicazioni complesse (nelle quali le funzioni possono servire a spezzettare il programma in piccoli sottoprogrammi) o di operazioni compiute frequentemente. È utile inoltre creare anche vere e proprie funzioni nel senso matematico del termine per risolvere problemi che ricorrono spesso.
Definire una funzione
[modifica | modifica sorgente]La definizione di una nuova funzione in PHP è la seguente:
function nome_funzione ($arg1, $arg2, ...) {
//istruzioni
}
Dove $arg1, $arg2
sono eventuali variabili che assumeranno i valori presi come parametri.
Impostare un valore di ritorno
[modifica | modifica sorgente]In una funzione personalizzata per impostare il valore restituito dalla funzione si usa l'istruzione return
. La sua sintassi è
return espr;
Quando il motore PHP incontra questa funzione restituisce il valore di espr
e interrompe l'esecuzione del blocco della funzione tra parentesi.
Vediamo adesso un esempio che fa uso del comando return. Vogliamo realizzare un convertitore euro -> lire.
<?php
// 15 euro
$valuta = 15;
// definizione della funzione "converti"
function converti($euro)
{
// effettuo la conversione
$lire = $euro * 1936.27;
// restituisco il valore calcolato
return $lire;
}
// chiamo la funzione converti. Questa volta dobbiamo usare una
// variabile per raccogliere il valore restituito dalla funzione!
$vecchio_conio = converti($valuta);
echo "$valuta euro equivalgono a $vecchio_conio lire";
?>
Analizziamo la funzione "converti". Quando viene invocata riceve un parametro (la quantità di euro da convertire in lire) che viene memorizzata nella variabile $euro. La prima istruzione effettua la conversione vera e propria. Per far si che la funzione restituisca il risultato calcolato viene usato il comando return affiancato dalla variabile da restituire $lire.
Per utilizzare la funzione converti dovremo quindi specificare anche la variabile che raccoglierà il risultato restituito da tale funzione. Nel nostro esempio sarà la variabile $vecchio_conio a conservare tale valore.
Anche se il comando return è in grado di restituire una sola variabile è possibile far si che una funzione restituisca anche più di un valore attraverso un semplice espediente. E' sufficiente infatti impacchettare tutti i valori da restituire all'interno di un array e poi usare il comando return proprio con questo array.
Usare i parametri
[modifica | modifica sorgente]Una volta definita una funzione è possibile lavorare sui parametri indicati tra parentesi, che possono essere passati per valore o per riferimento, allo stesso modo con le variabili. Ad esempio:
function prova (&$param1, $param2) {
$param1 = $param2 + 5;
}
prova($var1, 3);
Dopo l'esecuzione della funzione la variabile $var1
conterrà così il valore 8. Si faccia ovviamente attenzione a passare come parametro una variabile e non un'espressione, perché altrimenti non è possibilie effettuare il passaggio per riferimento.
Si noti che una funzione personalizzata deve essere invocata necessariamente dopo la sua dichiarazione. Ad esempio:
$var1 = funzione_esempio();
function funzione_esempio() {
return "ciao!";
}
In questo caso il motore PHP restituirà un errore, in quanto la lettura dello script avviene in sequenza e la funzione funzione_esempio
non è ancora stata dichiarata nel momento in cui viene chiamata.
Parametri predefiniti
[modifica | modifica sorgente]È possibile inoltre prevedere che l'utente non passi alcun valore nel chiamare la funzione ed impostare dei valori predefiniti che deve assumere il parametro nel caso non venga specificato. Ad esempio:
function predef ($arg1, $arg2 = 10) {
return $arg1 + $arg2 ;
}
echo predef(23); //restituisce 33