Apple Facebook Google Microsoft badania bezpieczeństwo patronat DI prawa autorskie serwisy społecznościowe smartfony

Wielu początkujących programistów PHP ma problemy ze stosowaniem funkcji isset() oraz empty() – nie w każdej sytuacji potrafią jednoznacznie określić, jaką wartość powinny te funkcje zwracać dla określonych argumentów. By wyjść im naprzeciw, postanowiłem zebrać najczęściej występujące przypadki i je wyjaśnić.

echo isset($a);
echo empty($a);
$a=NULL;
echo isset($a);
echo empty($a);

Gdy zmienna $a nie istnieje lub ma wartość NULL, funkcja isset($a) zwróci wartość false, a funkcja empty($a) zwróci wartość true.

$a=true;
echo isset($a);
echo empty($a);

Gdy zmienna $a ma wartość true, funkcja isset($a) zwróci wartość true, a funkcja empty($a) zwróci wartość false.

$a=false;
echo isset($a);
echo empty($a);
$a=0;
echo isset($a);
echo empty($a);

Gdy zmienna $a ma wartość false lub 0, funkcje isset($a) i empty($a) zwrócą wartość true.

$a=-3;
echo isset($a);
echo empty($a);
$a=1.36;
echo isset($a);
echo empty($a);

Gdy zmienna $a ma wartość liczbową różną od 0, to isset($a) zwróci wartość true, a funkcja empty($a) zwróci wartość false.

$a=”;
echo isset($a);
echo empty($a);
$a=’0';
echo isset($a);
echo empty($a);

Gdy zmienna $a jest pustym łańcuchem znaków lub łańcuchem składającym się z pojedynczego znaku ’0', funkcje isset($a) i empty($a) zwrócą wartość true.

$a=’000';
echo isset($a);
echo empty($a);
$a=’ ‘;
echo isset($a);
echo empty($a);
$a=’Ala ma 3/4 kota’;
echo isset($a);
echo empty($a);

Gdy zmienna $a zawiera kilka znaków ’0' lub znak spacji albo jest dowolnym innym ciągiem znaków, to isset($a) zwróci wartość true, a funkcja empty($a) zwróci wartość false.

$a=array();
echo isset($a);
echo empty($a);

Gdy zmienna $a jest tablicą nie zawierającą żadnych elementów, funkcje isset($a) i empty($a) zwrócą wartość true.

$a=array(NULL);
echo isset($a);
echo empty($a);
$a=array(false);
echo isset($a);
echo empty($a);
$a=array(0);
echo isset($a);
echo empty($a);
$a=array(”);
echo isset($a);
echo empty($a);

Gdy zmienna $a jest tablicą zawierającą puste elementy, np. NULL, false, 0, pusty łańcuch znaków, to isset($a) zwróci wartość true, a funkcja empty($a) zwróci wartość false.

$a=array(‘kolor’ => ‘zielony’);
echo isset($a['kształt']);
echo empty($a['kształt']);
$a=array(‘krokodyl’, ‘żaba’, ‘hipopotam’);
echo isset($a[8]);
echo empty($a[8]);
class Test
{
var $a;
}
$a=new Test();
echo isset($a->a);
echo empty($a->a);

Gdy odwołujemy się do nieistniejącego klucza lub indeksu tablicy albo do pustego pola obiektu, funkcja isset($a) zwróci wartość false, a funkcja empty($a) zwróci wartość true.

Dla wygody wszystkie rozpatrywane przypadki zebrałem w tabelce poniżej:

badany element
isset()
empty()
brak zmiennej false true
NULL false true
wartość logiczna true true false
wartość logiczna false true true
wartość liczbowa 0 true true
inna wartość liczbowa true false
pusty łańcuch znaków true true
łańcuch znaków zawierający zero true true
łańcuch znaków zawierający wiele zer true false
spacje true false
dowolny ciąg znaków true false
pusta tablica true true
tablica zawierająca puste elementy
(np. o wartościach NULL, false, 0, pusty łańcuch znaków)
true false
nieistniejący klucz tablicy false true
nieistniejący indeks tablicy false true
pole klasy bez podstawionej wartości false true

Więcej informacji na temat programowania w PHP znajdziesz w szkoleniach wideo „Zawodowy Webmaster” oraz „Programowanie obiektowe w PHP”. Podając kod di500 w formularzu zamówienia, otrzymasz darmowy bonus - atrakcyjne publikacje: „7 najczęstszych błędów popełnianych przez webmasterów, czyli jak wiele czasu, nerwów i pieniędzy możesz zaoszczędzić”, „15 pytań, które zada Ci pracodawca w trakcie rozmowy kwalifikacyjnej na stanowiska webmaster i programista PHP” oraz „Jak zarabiać na robieniu stron WWW”.


Aktualności | Porady | Gościnnie | Katalog
Bukmacherzy | Sprawdź auto | Praca
biurowirtualnewarszawa.pl wirtualne biura w Śródmieściu Warszawy


Artykuł może w treści zawierać linki partnerów biznesowych
i afiliacyjne, dzięki którym serwis dostarcza darmowe treści.

              *