MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Verificarea existenței variabilelor

Dacă o variabilă este declarată, dar nu i s-a atribuit inițial nici o valoare (altfel spus, nu este inițializată) sau dacă variabila nu este deloc definită, atunci va fi problematic să o folosim. De exemplu:

<?php
$a;
echo $a;
?>

La încercarea de a afișa valoarea variabilei, vom primi un mesaj de eroare care indică faptul că variabila nu este definită:

Warning: Undefined variable $a in C:\localhost\hello.php on line 10

Această situație poate părea artificială. Cu toate acestea, deseori variabilele în PHP primesc date din surse externe, cum ar fi input-ul utilizatorului. Prin urmare, apare necesitatea de a verifica dacă aceste date sunt definite și disponibile înainte de a le utiliza.

Pentru a verifica existența unei variabile, PHP oferă mai multe funcții încorporate.

Operatorul isset

Funcția isset() permite determinarea dacă o variabilă este inițializată sau nu. Dacă variabila este definită, isset() returnează true. Dacă variabila nu este definită, isset() returnează false. De asemenea, dacă variabila are valoarea null, funcția isset() returnează false.

De exemplu:

<?php
$message;
if(isset($message))
   echo $message;
else
   echo "variabila message nu este definită";
?>

Aici variabila $message nu este inițializată, deci expresia isset($message) va returna false.

variabila message nu este definită

Acum să presupunem că variabila $message are o valoare inițială:

<?php
$message = "Hello PHP";
if(isset($message))
   echo $message;
else
   echo "variabila message nu este definită";
?>

În acest caz, expresia isset($message) va returna true, așa că se va executa instrucțiunea echo $message:

Hello PHP

Totuși, dacă variabilei i se atribuie valoarea null, atunci va fi considerată neinstalată:

<?php
$message = null;
if(isset($message))
   echo $message;
else
   echo "variabila message nu este definită";
?>
variabila message nu este definită

Funcția empty

Funcția empty() verifică dacă o variabilă este "goală". O variabilă "goală" este o variabilă al cărei valoare este null, 0, false sau un șir gol. În acest caz, funcția empty() returnează true:

<?php
$message = "";
if(empty($message))
   echo "variabila message nu este definită";
else
   echo $message;
?>

Aici variabila $message conține un șir gol, deci expresia empty($message) va returna true.

variabila message nu este definită

Dacă șirul conține măcar un spațiu ($message = " "), atunci acest șir nu va mai fi considerat gol.

Funcția unset

Funcția unset() ne permite să distrugem o variabilă:

<?php
$a = 20;
echo $a; // 20
unset($a);
echo $a; // eroare, variabila nu este definită
?>

Cu toate acestea, necesitatea de a elimina o variabilă în acest mod este rară, deoarece PHP elimină automat variabilele când se încheie execuția contextului (de exemplu, a funcției) în care au fost definite aceste variabile.

← Lecția anterioară Lecția următoare →