Jaka jest różnica w zastosowaniu isset() i !empty() ?
Z PHPEdia.pl
Funkcja isset sprawdza czy zmienna została utworzona. Zwraca true jeśli istnieje lub false jeśli zmiennej nie ma. Wyjątek stanowi sytuacje gdy zmienna ma "wartość" NULL - wtedy funkcja isset zwraca false.
Natomiast empty sprawdza czy zmienna ma jakąś zawartość. Zwraca true jeśli zmienna ma wartość:
- "" (pusty string)
- 0 (0 jako integer)
- "0" (0 jako string)
- NULL
- FALSE
- array() (pusta tablica)
- var $var; (pole klasowe bez wartości)
W przeciwnym razie false. Znak ! jest zaprzeczeniem.
<?php if( isset($zmienna) ) { echo 'Jest zmienna'; } $zmienna = array("",0,"0",null,false,array(),true,1,"1",array(1)); for($i = 0; $i < sizeof($zmienna); $i++) { echo $i; echo isset($zmienna[$i]) ? ' IsSet - true, ' : ' IsSet - false, '; echo empty($zmienna[$i] ? 'empty - true' : 'empty - false'; } ?>
Wynik:
0 IsSet - true, empty - true 1 IsSet - true, empty - true 2 IsSet - true, empty - true 3 IsSet - false, empty - true 4 IsSet - true, empty - true 5 IsSet - true, empty - true 6 IsSet - true, empty - false 7 IsSet - true, empty - false 8 IsSet - true, empty - false 9 IsSet - true, empty - false
przykład z klasą:
<?php class przykład { public $x = 100; public function pokazX() { return $this->x; } public function pokazY() { return $this->y; } public function ustawXY($x,$y) { $this->x = $x; $this->y = $y; } } $obiekt = new przykład; echo $obiekt->pokazX(); //100 echo $obiekt->pokazY(); //NULL $obiekt->ustawXY(10,30); echo $obiekt->pokazX(); //10 echo $obiekt->pokazY(); //30 ?>
Jest to element FAQ, czyli zestawienia odpowiedzi na najczęściej zadawane pytania.
Zestawienie: Informacje | Podstawy PHP | Porady praktyczne | Pytania z forum | Bezpieczeństwo
