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ć.
reklama
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.
*
|
|
|
|
|
|