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”.
Artykuł może zawierać linki partnerów, umożliwiające rozwój serwisu i dostarczanie darmowych treści.
|
|
|
|
|
|
|
|
Stopka:
© 1998-2025 Dziennik Internautów Sp. z o.o. Wszelkie prawa zastrzeżone.