(PHP 4, PHP 5, PHP 7)
isset — Determină dacă o variablă este stabilită și nu este NULL
Determină dacă o variablă este stabilită și nu este NULL
.
Dacă o variabilă a fost eliminată cu unset(), ea nu va
mai fi stabilită. isset() va întoarce FALSE
la testarea
unei variabile care a fost stabilită în NULL
. De asemenea observați că
caracterul nul ("\0") nu este echivalent cu constanta PHP
NULL
.
Dacă se furnizează mai mulți parametri, atunci isset()
va întoarce TRUE
numai dacă toți parametrii sunt stabiliți. Evaluarea
se petrece de la stânga spre dreapta și se încheie de îndată ce se
întâlnește o variabilă "ne-stabilită".
var
Variabila ce va fi verificată.
...
O altă variabilă ...
Întoarce TRUE
dacă var
există și are o valoare
diferită de NULL
. FALSE
în caz contrar.
Versiune | Descriere |
---|---|
5.4.0 |
Verificarea deplasamentelor non-numerice în șiruri de caractere acum întoarce |
Example #1 Ecemple isset()
<?php
$var = '';
// Aceasta va evalua în TRUE, de aceea textul va fi afișat.
if (isset($var)) {
echo "This var is set so I will print.";
}
// În următoarele exemple vom utiliza var_dump pentru a afișa
// valoarea întoarsă de isset().
$a = "test";
$b = "anothertest";
var_dump(isset($a)); // TRUE
var_dump(isset($a, $b)); // TRUE
unset ($a);
var_dump(isset($a)); // FALSE
var_dump(isset($a, $b)); // FALSE
$foo = NULL;
var_dump(isset($foo)); // FALSE
?>
Aceasta de asemenea funcționează și pentru elemente din tablouri:
<?php
$a = array ('test' => 1, 'hello' => NULL, 'pie' => array('a' => 'apple'));
var_dump(isset($a['test'])); // TRUE
var_dump(isset($a['foo'])); // FALSE
var_dump(isset($a['hello'])); // FALSE
// Cheia 'hello' este egală cu NULL, de aceea este considerată nesetată
// Dacă doriți să verificați cheile cu valori NULL, atunci încercați:
var_dump(array_key_exists('hello', $a)); // TRUE
// Verificarea valorilor la nivele mai adânci în tablou
var_dump(isset($a['pie']['a'])); // TRUE
var_dump(isset($a['pie']['b'])); // FALSE
var_dump(isset($a['cake']['a']['b'])); // FALSE
?>
Example #2 isset() cu deplasamente în șiruri de caractere
PHP 5.4 modifică modul cum funcționează isset() când îi sunt transmise deplasamente în șiruri de caractere.
<?php
$expected_array_got_string = 'somestring';
var_dump(isset($expected_array_got_string['some_key']));
var_dump(isset($expected_array_got_string[0]));
var_dump(isset($expected_array_got_string['0']));
var_dump(isset($expected_array_got_string[0.5]));
var_dump(isset($expected_array_got_string['0.5']));
var_dump(isset($expected_array_got_string['0 Mostel']));
?>
Exemplul de mai sus va afișa în PHP 5.3:
bool(true) bool(true) bool(true) bool(true) bool(true) bool(true)
Exemplul de mai sus va afișa în PHP 5.4:
bool(false) bool(true) bool(true) bool(true) bool(false) bool(false)
isset() funcționează numai cu variabile, deoarece la furnizarea a orice altceva se va genera o eroare de interpretare. Pentru a verifica dacă constantele sunt stabilite utilizați funcția defined().
Notă: Deoarece aceasta este o construcție a limbajului și nu o funcție, ea nu poate fi apelată utilizând funcții de operare cu variabile .
Notă:
La utilizarea isset() asupra proprietăților inaccesibile ale obiectelor, va fi apelată metoda de supraîncărcare __isset(), dacă este declarată.