list() / [$a, $b] = în PHP

Variabile PHP 4+ (forma [] și chei: PHP 7.1+)

Desface un tablou în mai multe variabile, într-o singură instrucțiune.

Sintaxă
[$a, $b] = $tablou;
["cheie" => $x] = $tablou;
list($a, $b) = $tablou;

Ce face list() / [$a, $b] =

Destructurarea pune elementele unui tablou direct în variabile: [$nume, $oras] = ["Ana", "Iași"];. Forma veche este list($nume, $oras) = ...; din PHP 7.1 se poate scrie mai scurt, cu paranteze drepte.

Poți sări peste elemente lăsând locul gol ([, $al_doilea] = ...), poți lua valorile după cheie (["id" => $id] = $rand) și poți destructura tablouri imbricate. Funcționează și direct în foreach.

Un truc util: schimbarea a două variabile între ele, fără variabilă temporară: [$a, $b] = [$b, $a];.

Exemple

Exemplul 1: Poziții și chei

<?php
[$zi, $luna, $an] = explode(".", "19.10.2026");
echo "An: $an, luna: $luna, zi: $zi\n";

[, $domeniu] = explode("@", "ana@exemplu.ro");
echo "Domeniu: $domeniu\n";

["nume" => $nume, "oras" => $oras] = ["id" => 7, "nume" => "Mihai", "oras" => "Cluj"];
echo "$nume din $oras";

Rezultat

An: 2026, luna: 10, zi: 19
Domeniu: exemplu.ro
Mihai din Cluj

Exemplul 2: Destructurare în foreach

<?php
$comenzi = [
    ["id" => 1024, "client" => "Ana", "total" => 259.9],
    ["id" => 1025, "client" => "Ioana", "total" => 80],
];

foreach ($comenzi as ["id" => $id, "total" => $total]) {
    echo "#$id: $total lei\n";
}

Rezultat

#1024: 259.9 lei
#1025: 80 lei

Exemplul 3: Schimbare de valori și forma list()

<?php
$a = "primul";
$b = "al doilea";
[$a, $b] = [$b, $a];
echo "$a / $b\n";

list($latime, $inaltime) = [1920, 1080];
echo "{$latime}x{$inaltime}";

Rezultat

al doilea / primul
1920x1080

Greșeli frecvente

  • Destructurezi mai multe variabile decât elemente are tabloul. Variabilele în plus primesc null și apare avertismentul Undefined array key.
  • Amesteci în aceeași destructurare poziții și chei: [$a, "x" => $b] = .... Nu este permis; folosește ori doar poziții, ori doar chei.

Comenzi înrudite

  • explode: Împarte un text în bucăți după un separator și le pune într-un tablou.
  • foreach: Parcurge, pe rând, fiecare element dintr-un tablou.
  • return: Oprește funcția și trimite înapoi o valoare către codul care a apelat-o.