get_defined_vars în PHP

Returnează toate variabilele definite în locul unde este apelată, ca tablou nume => valoare.

Sintaxă
get_defined_vars(): array

Ce face get_defined_vars

Într-o funcție, get_defined_vars returnează parametrii și variabilele locale. În afara funcțiilor, returnează variabilele globale, inclusiv cele speciale ($_GET, $_POST, $_SERVER…).

Este util la depanare sau în motoare de șabloane simple, unde variabilele unei funcții sunt trimise către un fișier de afișare.

Ce returnează

Un tablou asociativ cu variabilele.

Exemple

Exemplul 1: Variabilele dintr-o funcție

<?php
function factura(string $client, float $total): array
{
    $tva = $total * 0.21;
    $serie = "DEX";
    return get_defined_vars();
}

print_r(factura("Ana", 100));

Rezultat

Array
(
    [client] => Ana
    [total] => 100
    [tva] => 21
    [serie] => DEX
)

Exemplul 2: Șablon simplu cu variabilele funcției

<?php
function randeaza(string $sablon, array $variabile): string
{
    return preg_replace_callback("/\{(\w+)\}/", fn($m) => $variabile[$m[1]] ?? $m[0], $sablon);
}

function emailConfirmare(): string
{
    $nume = "Ioana";
    $comanda = 1024;
    return randeaza("Salut, {nume}! Comanda {comanda} a fost primită.", get_defined_vars());
}

echo emailConfirmare();

Rezultat

Salut, Ioana! Comanda 1024 a fost primită.

Greșeli frecvente

  • Afișezi get_defined_vars() la nivel global pe o pagină publică. Rezultatul conține și $_SERVER, cu căi și setări ale serverului.

Comenzi înrudite

  • global / $GLOBALS: Face vizibilă într-o funcție o variabilă definită în afara oricărei funcții.
  • get_defined_constants: Returnează toate constantele definite, opțional grupate după extensia din care vin.
  • print_r: Afișează conținutul unui tablou sau obiect într-o formă ușor de citit.