KWALIFIKACJA INF3 - STYCZEŃ 2024

PYTANIE NR 24.
W języku PHP zastosowano funkcję
is_float() 
. Które z podanych wywołań tej funkcji zwróci wartość true?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Funkcja is_float() zwraca true tylko wtedy, gdy przekazana wartość ma typ float. Wywołanie is_float(3.34) przekazuje literał zmiennoprzecinkowy, więc wynik jest prawdziwy. Dla NULL oraz dla napisu '3,34' zwróci false, a dla 334 (int) również false.

Pełne wyjaśnienie:

W PHP funkcje z rodziny is_* służą do sprawdzania rzeczywistego typu przekazanej wartości. W tym zadaniu kluczowa jest funkcja is_float() (alias: is_double()), która zwraca wartość logiczną true wyłącznie wtedy, gdy argument jest typu float (liczba zmiennoprzecinkowa).

Wywołanie is_float(3.34) przekazuje do funkcji literał liczbowy z kropką dziesiętną, więc w kodzie jest to typ float. Z tego powodu zwracane jest true.

Pozostałe wywołania są niepoprawne, bo przekazują inne typy:

  • is_float(NULL)NULL oznacza brak wartości; nie jest liczbą, więc test typu float kończy się wynikiem false.
  • is_float('3,34') – to string (napis) w cudzysłowie. Dodatkowo użyto przecinka jako separatora dziesiętnego, co w kodzie nie tworzy literału float. Funkcja sprawdza typ, a nie "czy da się to zinterpretować jako liczbę", więc wynik to false.
  • is_float(334) – wartość 334 bez części ułamkowej jest w PHP literałem typu int. Mimo że dałoby się zapisać ją jako 334.0 (float), tutaj argumentem jest int, więc wynik to false.

Wskazówka egzaminacyjna: w pytaniach o is_float(), is_int() i podobne zawsze patrz na typ argumentu (czy jest w cudzysłowie, czy ma kropkę, czy jest NULL), a nie na to, czy "wygląda liczbowo".

Dodatkowe pytania

Dodatkowe pytania (FAQ):
is_float() sprawdza, czy przekazana wartość ma typ float (liczba zmiennoprzecinkowa) i zwraca true lub false. Nie konwertuje wartości na liczbę, tylko weryfikuje aktualny typ zmiennej w chwili wywołania.
Ponieważ 3.34 w kodzie PHP jest literałem liczbowym z częścią ułamkową zapisaną kropką, więc ma typ float. Funkcja testuje typ argumentu, dlatego zwróci true dla takiego zapisu.
Zwykle nie, bo 334 jest literałem typu int. is_float() zwróci false, dopóki wartość nie będzie faktycznie typu float (np. 334.0 albo wynik działania dającego float).
NULL oznacza brak wartości. To osobny typ w PHP i nie jest liczbą. Funkcje is_* nie traktują NULL jako "0" ani jako liczby, więc is_float(NULL) zwraca false.
Bo '3,34' jest napisem (string) ujętym w cudzysłów, a nie liczbą. Dodatkowo przecinek nie jest w PHP separatorem dziesiętnym w literałach liczbowych. is_float() sprawdza typ, więc dla string zwróci false.
Dane z formularza zwykle przychodzą jako string. Najpierw waliduj format (np. regex), a potem jawnie konwertuj (np. rzutowanie lub funkcje konwersji). Dopiero po konwersji testuj typ, np. is_float(). To typowy krok w zadaniach INF.3.
W praktyce i na egzaminach przydają się: is_int(), is_string(), is_bool(), is_null(), is_numeric(). Pamiętaj, że is_numeric() sprawdza "czy da się uznać za liczbę", a is_float() sprawdza typ.
Stosuje się ją np. przy kontroli danych liczbowych po konwersji, w obliczeniach cen, rabatów, wyników pomiarów, a także przy debugowaniu błędów typów. W webdev ważne jest, by nie mieszać stringów z liczbami w logice biznesowej.
Najczęściej myli się string wyglądający jak liczba z prawdziwą liczbą (np. '3.34' albo '3,34'). Druga pułapka to uznawanie każdej "liczby" za float. W PHP literał bez kropki to zwykle int.
Najpierw rozpoznaj typ po zapisie: cudzysłów oznacza string, NULL to null, kropka w liczbie sugeruje float, brak kropki zwykle int. Potem dopasuj do funkcji typu is_*. To szybka metoda na test.
info

Statystycznie 77% uczniów zna prawidłową odpowiedź. średnio łatwe

Eksperci podkreślają: "Funkcja is_float() zwraca true tylko wtedy, gdy przekazana wartość ma typ float."

Źródła:

  • PHP Manual: is_float — Finds whether the type of a variable is float, https://www.php.net/manual/en/function.is-float.php (dostęp: 2026-03-01)
  • PHP Manual: Types — Introduction (typy danych), https://www.php.net/manual/en/language.types.intro.php (dostęp: 2026-03-01)
  • PHP Manual: Floating point numbers, https://www.php.net/manual/en/language.types.float.php (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja PHP: funkcje is_* (type checking)
  • Dokumentacja PHP: typy danych i liczby zmiennoprzecinkowe
  • Materiały do INF.3: podstawy PHP i walidacja danych wejściowych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego