PHP/Programmazione/Funzioni personalizzate: differenze tra le versioni
m →Usare i parametri: fix |
m Discussioni Wikibooks:Libri stampabili, replaced: {{PHP}} → <noinclude>{{PHP}}</noinclude> using AWB |
||
Riga 1: | Riga 1: | ||
{{PHP}} |
<noinclude>{{PHP}}</noinclude> |
||
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. |
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 [[w:Funzione (matematica)|senso matematico]] del termine per risolvere problemi che ricorrono spesso. |
||
== Definire una funzione == |
== Definire una funzione == |
||
Riga 68: | Riga 68: | ||
=== Parametri predefiniti === |
=== Parametri predefiniti === |
||
È 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: |
|||
<source lang="php"> |
<source lang="php"> |
||
function predef ($arg1, $arg2 = 10) { |
function predef ($arg1, $arg2 = 10) { |
Versione delle 19:48, 22 ago 2016
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
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
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
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
È 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