KWALIFIKACJA INF3 - CZERWIEC 2018

PYTANIE NR 28.
W języku PHP zastosowano funkcję is_int(). Które z podanych wywołań tej funkcji zwróci wartość TRUE?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
is_int() zwraca TRUE tylko wtedy, gdy argument ma typ całkowity (int). Wartość 135 jest literałem typu int, więc is_int(135) daje TRUE. NULL ma osobny typ, 13.5 jest float, a "135" to napis, mimo że zawiera cyfry.

Pełne wyjaśnienie:

Funkcja is_int() w PHP służy do sprawdzenia, czy podana wartość (argument) ma dokładnie typ całkowity, czyli int. Funkcja nie "zgaduje" typu na podstawie wyglądu danych i nie dokonuje automatycznej konwersji, tylko odpowiada na pytanie: "czy to już jest int?".

Wywołanie is_int(135) zwróci TRUE, ponieważ liczba 135 zapisana bez cudzysłowów i bez części ułamkowej jest literałem typu całkowitego.

  • Odpowiedź is_int(NULL) jest błędna, bo NULL w PHP jest osobnym typem oznaczającym brak wartości. To nie jest liczba całkowita.
  • Odpowiedź is_int(13.5) jest błędna, ponieważ 13.5 ma część ułamkową, więc w PHP jest traktowane jako liczba zmiennoprzecinkowa (float), a nie int.
  • Odpowiedź is_int("135") jest błędna, bo zapis w cudzysłowie tworzy napis (string). To częsty błąd: ciąg znaków "135" wygląda jak liczba, ale typ nadal pozostaje tekstowy.

W praktyce, gdy dane pochodzą np. z formularza, bardzo często będą typu string. Wtedy do oceny, czy "da się to potraktować jak liczbę", używa się innych podejść (np. walidacji i konwersji), ale is_int() sprawdza wyłącznie aktualny typ.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
is_int() sprawdza, czy podany argument ma typ int (liczba całkowita). Zwraca TRUE tylko wtedy, gdy typ jest już całkowity, a nie wtedy, gdy wartość "da się" zamienić na liczbę.
Ponieważ "135" to string (napis). Cudzysłowy oznaczają tekst, nawet jeśli składa się z cyfr. is_int() nie konwertuje typu, tylko sprawdza bieżący typ danych.
Zależy od tego, jaki typ ma literał w danym zapisie, ale typowo zapis z kropką jest traktowany jako float, więc is_int() zwraca FALSE. is_int() wymaga typu int, a nie "liczby bez ułamka".
Patrz na zapis wartości: liczba bez części ułamkowej (np. 135) jest int, a liczba z kropką (np. 13.5) jest float. Na egzaminie najczęściej testuje się właśnie to rozróżnienie oraz wpływ cudzysłowów (string).
NULL bywa mylony z "pustą liczbą", ale w PHP jest osobnym typem oznaczającym brak wartości. Mechanizm błędu polega na traktowaniu NULL jako 0 lub jako wartości "uniwersalnej", co nie jest zgodne z typowaniem.
Do podobnych funkcji należą m.in. is_float() (float), is_string() (string), is_null() (NULL), is_bool() (bool). Wszystkie działają podobnie: sprawdzają typ argumentu, bez automatycznej zmiany typu.
Dane z formularza zwykle są stringami. Najpierw wykonaj walidację, a potem konwersję (rzutowanie) na int. Dopiero po konwersji is_int() może zwrócić TRUE. Sama obecność cyfr w napisie nie zmienia typu.
Bo celem is_int() jest kontrola konkretnego typu, a nie "numeryczności" w sensie treści. W PHP napis może być numeryczny, ale nadal jest stringiem. To ważne w bezpieczeństwie i w logice aplikacji.
Najczęściej myli się: string z cyframi ("135") z int, float bez "widocznego ułamka" (np. 13.0) z int oraz NULL z liczbą 0. Pułapka polega na ocenianiu "wyglądu" zamiast typu.
Stosuj prostą check-listę: 1) cudzysłowy → string, 2) kropka w zapisie → float, 3) NULL → osobny typ, 4) liczba bez kropki i bez cudzysłowów → int. To zwykle wystarcza do poprawnej odpowiedzi.
info

To pytanie poprawnie rozwiązuje 83% zdających egzamin. średnio łatwe

W praktyce zawodowej kluczowe jest to, że is_int() zwraca TRUE tylko wtedy, gdy argument ma typ całkowity (int).

Źródła:

  • PHP Manual: is_int — https://www.php.net/manual/en/function.is-int.php (dostęp: 2026-03-02)
  • PHP Manual: Data Types — https://www.php.net/manual/en/language.types.php (dostęp: 2026-03-02)
  • PHP Manual: NULL — https://www.php.net/manual/en/language.types.null.php (dostęp: 2026-03-02)

Materiały:

  • Oficjalna dokumentacja PHP: strona funkcji is_int() i rozdział o typach danych
  • Ćwiczenia praktyczne: testowanie is_int/is_float/is_numeric na różnych wartościach
  • Notatki/ściąga z typów danych PHP i funkcji is_*

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego