Jaką wartość zwróci w PHP funkcja empty($a), gdy zmienna $a ma wartość liczbową 0?
Źle. Dla 0 funkcja zwraca
TRUE, a nie FALSE.Źle.
empty() zawsze zwraca wartość logiczną, nigdy NULL.Dobrze.
empty(0) zwraca TRUE - zero jest traktowane jako „puste”.Źle.
empty() zwraca wartość logiczną, nie liczbę.Funkcja
empty() sprawdza, czy zmienna jest „pusta”, i zwraca wartość logiczną. Za puste PHP uznaje m.in. 0, "0", pusty łańcuch "", NULL, FALSE oraz pustą tablicę. Skoro $a wynosi 0, empty($a) zwróci TRUE. To częsta pułapka: liczba zero jest traktowana jak wartość pusta, więc do odróżnienia „zera” od „braku wartości” lepiej użyć isset() lub porównania ===. Dlatego dla 0 funkcja zwraca TRUE.Pozostałe odpowiedzi błędnie określają wynik.
empty() zawsze zwraca wartość logiczną (prawda/fałsz), więc nie odda samej liczby 0 ani NULL. FALSE byłoby poprawne tylko, gdyby zmienna NIE była pusta - tymczasem zero PHP zalicza do wartości pustych, więc funkcja zwraca TRUE. Dla wartości liczbowej 0 wynikiem empty($a) jest TRUE, dlatego ta odpowiedź jest poprawna.