return în PHP

Oprește funcția și trimite înapoi o valoare către codul care a apelat-o.

Sintaxă
return expresie;

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.