3.26 Jaka jest różnica w zastosowaniu isset() i !empty() ?

Ostatnia modyfikacja: 2003-03-26 19:21:52

Przeprowadźmy prostą analizę:
Pewna zmienna $var może:
a) nie istnieć,
b) być pusta (także równać się zero !),
c) mieć jakąś wartość,

isset($var) - daje TRUE gdy $var jest b) lub c), FALSE gdy a)
empty($var) - daje TRUE gdy $var jest a) lub b), FALSE gdy c)

a słownie:
isset($var) - daje FALSE jedynie gdy $var nie istnieje
empty($var) - daje FALSE jedynie gdy $var ma jakąś wartość (uważaj na zero!)

Reasumując:
Stosujemy empty() jeśli chcemy mieć pewność, że otrzymaliśmy jakąś wartość w $var (nie uwzględniamy niestety kłopotliwego przypadku (int)$var=0) bez względu na to czy zmienna będzie istnieć czy nie.
Empty() nie generuje żadnego 'Warning' i sprawdza dwie rzeczy za jednym zamachem.


Powrót do indeksu