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.