Ce face return
return încheie imediat funcția. Valoarea de după return devine rezultatul apelului. Codul scris după return, în aceeași ramură, nu mai rulează.
O funcție fără return (sau cu return; simplu) returnează null. Tipul declarat : void spune că funcția nu returnează nimic, iar : never că nu se termină niciodată normal (aruncă o excepție sau oprește scriptul).
Pentru mai multe valori, returnează un tablou și desparte-l cu [$a, $b] = functie();. return poate fi folosit și într-un fișier inclus: valoarea devine rezultatul lui require.
Exemple
Exemplul 1: Ieșire devreme din funcție
Verificările de la început, cu return, evită multe if-uri imbricate.
<?php
function reducere(float $total, ?string $cod): float
{
if ($cod === null) {
return 0;
}
if ($cod === "TOAMNA10") {
return $total * 0.10;
}
return 0;
}
echo reducere(300, "TOAMNA10") . "\n";
echo reducere(300, "GRESIT") . "\n";
echo reducere(300, null);
Rezultat
30
0
0
Exemplul 2: Mai multe valori într-un tablou
<?php
function statistici(array $note): array
{
return [min($note), max($note), array_sum($note) / count($note)];
}
[$minim, $maxim, $media] = statistici([7, 10, 8, 9]);
echo "Minim $minim, maxim $maxim, media $media";
Rezultat
Minim 7, maxim 10, media 8.5
Exemplul 3: Fără return, rezultatul este null
<?php
function salut(string $nume)
{
echo "Salut, $nume!\n";
}
$rezultat = salut("Ana");
var_dump($rezultat);
Rezultat
Salut, Ana!
NULL
Greșeli frecvente
- Afișezi cu
echoîn funcție în loc să returnezi valoarea. Rezultatul nu mai poate fi salvat sau folosit în alt calcul. - Pui cod după
returnși te miri că nu rulează.
Comenzi înrudite
function: Definește o funcție proprie: un bloc de cod cu nume, pe care îl poți apela de oricâte ori.list() / [$a, $b] =: Desface un tablou în mai multe variabile, într-o singură instrucțiune.yield: Transformă o funcție într-un generator, care produce valorile pe rând, doar când sunt cerute.