Provo a spiegartela così: dall'esterno la tua funzione è come una "scatola nera" che accetta in ingresso zero, uno o più parametri e che è in grado di restituire al massimo un valore. Ad esempio:
Codice PHP:
function delta ($a, $b, $c)
{
return $b * $b - 4 * $a * $c;
}
è una funzione che calcola il discriminante di un'equazione di secondo grado.
Il concetto di "scatola nera" è spiegabile così: se definisci altre variabili all'interno della funzione, queste non possono essere utilizzate all'esterno. In altre parole, questo codice non funziona bene:
Codice PHP:
// qualche piccola modifica...
function delta ($a, $b, $c)
{
$quadrato = $b * $b;
$prodotto = 4 * $a * $c;
return $quadrato - $prodotto;
}
$a1 = 1;
$b1 = 3;
$c1 = 2;
echo (delta ($a1, $b1, $c1)); // stampa correttamente 1
echo ($quadrato); // questa non funziona, $quadrato non è definita!
debug ti aveva detto che una funzione dovrebbe contenere almeno un echo (per stampare dei risultati a video) o un return (per restituire un risultato da elaborare). Se non ci fossero, la tua funzione sarebbe una "scatola nera" che combina qualcosa senza che nessuno lo sappia (e allora, a che servirebbe?).
Altra cosa: una funzione può restituire AL MASSIMO un valore, non è possibile scrivere più volte l'enunciato return dentro la funzione (a meno che non sei certo che uno escluda gli altri, ad esempio in un blocco if/else). Se devi usare più valori, una soluzione è l'echo, ma con questa puoi solo stamparli a video e non elaborarli.
Stammi bene...