KWALIFIKACJA INF3 - CZERWIEC 2019

PYTANIE NR 38.
Jaką wartość zwróci funkcja empty($a); zapisana w języku PHP, gdy zmienna $a przyjmie wartość liczbową równą 0?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W PHP funkcja empty() zwraca wartość logiczną informującą, czy zmienna ma wartość uznawaną za "pustą". Liczba 0 należy do wartości "pustych" (falsy), więc wywołanie empty($a) dla $a = 0 zwróci TRUE. Nie jest to NULL ani FALSE.

Pełne wyjaśnienie:

Funkcja empty() w PHP służy do sprawdzenia, czy zmienna jest "pusta" w rozumieniu PHP, czyli czy ma wartość traktowaną jako fałszywa (tzw. falsy). Zwraca ona zawsze wynik logiczny: true albo false.

Dla zmiennej $a ustawionej na wartość liczbową 0, PHP traktuje tę wartość jako "pustą". W praktyce oznacza to, że empty($a) zwróci TRUE, ponieważ 0 jest jedną z wartości, które w warunkach logicznych są oceniane jako fałsz.

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • NULL: empty() nie zwraca NULL. NULL może być wartością zmiennej, ale sama funkcja zwraca wynik typu boolean.
  • FALSE: dla $a = 0 wynik nie będzie FALSE, bo 0 spełnia kryterium "pustości" w PHP.
  • TRUE: jest poprawne, bo odpowiada zachowaniu empty() dla liczby 0.

Wskazówka egzaminacyjna: nie myl "puste" z "nieustawione". Do sprawdzania, czy zmienna istnieje/nie jest niezdefiniowana, częściej używa się isset(), a do rozróżniania typów i wartości pomocne jest porównanie ścisłe (===).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
empty() zwraca zawsze wartość logiczną: true albo false. Informuje, czy zmienna ma wartość uznawaną przez PHP za "pustą" (falsy), np. 0, "0", "", null, false, pustą tablicę.
W PHP liczba 0 jest traktowana jako wartość "pusta" (falsy). Dlatego sprawdzenie empty($a) uzna, że zmienna spełnia warunek "pustości" i zwróci true.
Nie. empty() zwraca wynik typu boolean. NULL może być wartością sprawdzanej zmiennej, ale nie jest wartością zwracaną przez empty().
Typowo: 0, "0", "" (pusty napis), false, null, [] (pusta tablica). Na egzaminie warto pamiętać szczególnie o 0 i "0".
isset() sprawdza, czy zmienna istnieje i nie jest null. empty() sprawdza "pustość" wartości (falsy). Dla $a = 0: isset($a) będzie zwykle true, a empty($a) true.
W PHP napis "0" jest również traktowany jako "pusty" w kontekście empty(). Dlatego empty("0") zwraca true, co często jest pułapką w zadaniach.
Najczęściej przy walidacji danych wejściowych, np. z formularzy i parametrów GET/POST. Uwaga: jeśli 0 jest poprawną wartością (np. ilość=0), użycie empty() może błędnie uznać ją za "brak danych".
Zamiast empty() można użyć sprawdzeń bardziej precyzyjnych, np. isset() oraz porównań ścisłych (===) do rozróżnienia 0 od null i pustego stringu. To ogranicza fałszywe odrzucenia danych.
Bo wszystkie te wartości bywają traktowane jako "fałszywe" w warunkach, ale oznaczają co innego. 0 to liczba, false to boolean, a null to brak wartości. Funkcje empty()/isset() rozróżniają je w specyficzny sposób.
Najczęściej sprawdzane jest, co zwraca empty() dla wartości granicznych: 0, "0", "", null, false oraz pustej tablicy. Warto przećwiczyć kilka przykładów i pamiętać, że wynik empty() to zawsze boolean.
info

To pytanie poprawnie rozwiązuje 63% zdających egzamin. średnie

Eksperci podkreślają: "W PHP funkcja empty() zwraca wartość logiczną informującą, czy zmienna ma wartość uznawaną za "pustą"."

Źródła:

  • PHP Manual: empty — Determine whether a variable is empty, https://www.php.net/manual/en/function.empty.php - accessed 2026-02-27
  • PHP Manual: Booleans (conversion to boolean / falsy values), https://www.php.net/manual/en/language.types.boolean.php - accessed 2026-02-27
  • PHP Manual: isset — Determine if a variable is declared and is different than null, https://www.php.net/manual/en/function.isset.php - accessed 2026-02-27

Materiały:

  • Dokumentacja PHP: funkcje empty(), isset(), is_null() i porównania typów
  • Ćwiczenia: porównanie zachowania empty() dla 0, "0", false, null, "", []
  • Materiały o typowaniu w PHP (falsy/truthy) i porównaniach == vs ===

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego