Funzioni definite dal programmatore:
Le funzioni create dall'utente sono tutte quelle funzioni che raccolgono istruzioni fornite
dal programmatore.
Tutte queste funzioni sono racchiuse fra parentesi graffe { } ed hanno un nome diverso da ogni altro nome di funzione.
Per definire una funzione dobbiamo utilizzare la parola chiave 'function' seguita dal nome
e dai parametri racchiusi fra parentesi tonde. I parametri non sono obbligatori.
Esempio:
Function prima($x1, $x2, $x3...){
....
}
Per richiamare la funzione dobbiamo usare solo il nome, ed è
obbligatorio definire la funzione PRIMA di richiamarla, altrimenti il programma si bloccherà.
Esempio:
$a = prima(10,3,74);
In questo caso abbiamo immesso direttamente dei valori all'interno della funzione, ma potevamo
scrivere anche:
$b = 10;
$c = 3;
$d = 74;
$a = prima($b, $c, $d);
Come vediamo abbiamo inserito le variabili $b $c $d diverse dalle variabili $x1, $x2, $x3
che definiscono la funzione.
Il risultato non varia perché non conta il nome ma conta la posizione all'interno della chiamata,
infatti adesso nella funzione $x1 è uguale al valore di $b, $x2 è uguale al valore di $c e $x3
è uguale al valore di $d.
Return:
L'ultimo esempio visto presuppone che una variabile riceva un risultato. Per ottenere quello
richiesto dobbiamo inserire nella funzione il comando
'return', ma ricordiamoci che
è obbligatorio solo quando la funzione deve restituire un risultato o quando vogliamo
interromperla senza proseguire nelle successive istruzioni della funzione.
Esempio:
Function prima($x1, $x2, $x3){
$e = $x1 + $x2 + $x3;
return $e;
}
$b = 10;
$c = 3;
$d = 74;
$a = prima($b, $c, $d);
Come vediamo abbiamo restituito una variabile che si chiama $e. Da adesso la variabile che
ha chiamato la funzione (ossia $a) assume lo stesso valore di $e (ossia 87).
Risultati multipli:
Come abbiamo visto una funzione può restituire un valore. Il punto successivo è stabilire come
restituire più valori con la stessa funzione.
Questo è possibile restituendo un
array, ossia un insieme di valori che una volta
usciti dalla funzione possiamo scompattare in valori singoli.
Esempio:
function prima() {
$a = 5 * 2;
$b = 5 * 3;
$c = 5 * 4;
$d = array($a, $b, $c);
return $d;
}
$x = prima();
Adesso abbiamo un array che contiene tre valori numerici.
Per associare la variabile al dato risultante dalla funzione possiamo usare il costrutto predefinito
list().
List() è una funzione predefinita del php (da utilizzare con gli array), che associa le variabili contenute al suo interno con i rispettivi valori trovati all'interno dell'array in ordine crescente (la stessa posizione).
Esempio utilizzo list():
$saluto[]=buongiorno;
$saluto[]=buonasera;
list($mattina,$sera)=$saluto;
echo$mattina."<br>";
echo$sera."<br>";
Otterremo come risultato:
buongiorno
buonasera
In pratica
list() crea delle variabili e le associa con i valori contenuto dentro un array.
Se utilizziamo la funzione list() con i risultati multipli di una funzione PHP otteniamo delle nuove variabili con il valore risultante dalla funzione.
Esempio:
<?
function prima() {
$a = 5 * 2;
$b = 5 * 3;
$c = 5 * 4;
$d = array($a, $b, $c);
return $d;
}
list($x1, $x2, $x3) = prima();
echo"x1= ".$x1."<br>";
echo"x2= ".$x2."<br>";
echo"x3= ".$x3."<br>";
?>
Otterremo come risultato:
x1= 10
x2= 15
x3= 20
Default:
Potrebbe accadere che uno o più valori chiamati da una funzione non vengano restituiti. In
questo caso possiamo ovviare all'inconveniente associando un valore prestabilito in fase
di dichiarazione di funzione.
Esempio:
function seconda($x1, $x2, $x3="non inserito") {
print $x1." ";
print $x2." ";
print $x3."<br>";
}
$a = 5;
$b = 6;
$c = 7;
$d = seconda($a, $b, $c);
$e = seconda($a, $b);
Otterremo come risultato:
5 6 7
5 6 non inserito