KWALIFIKACJA INF3 - STYCZEŃ 2021

PYTANIE NR 5.
W języku PHP zainicjowano zmienną $a wartością 1. Porównanie $a === $b przyjmuje wartość true, w przypadku, gdy zmienna $b jest zainicjowana wartością
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Operator === w PHP porównuje wartość i typ. Skoro $a ma wartość 1 jako liczba całkowita (int), wynik true otrzymamy tylko wtedy, gdy $b również będzie liczbą całkowitą 1. Warianty '1' oraz "1" są łańcuchami (string), więc nie spełniają warunku identyczności typu.

Pełne wyjaśnienie:

W PHP operator === oznacza porównanie ścisłe (identyczność): aby wyrażenie było prawdziwe, oba operandy muszą mieć tę samą wartość oraz ten sam typ.

Jeżeli zmienna $a została zainicjowana wartością 1, to (w typowym zapisie) jest to liczba całkowita, czyli typ int. Porównanie $a === $b zwróci więc true wyłącznie wtedy, gdy $b będzie również typu int i będzie miała wartość 1.

Ocena odpowiedzi:

  • 1 – poprawne, bo jest to liczba całkowita o tej samej wartości i typie co $a.
  • '1' – błędne, ponieważ zapis w apostrofach oznacza typ string. Mimo że treść wygląda jak liczba, typ się nie zgadza.
  • 1 lub '1' – błędne, bo zawiera alternatywę; tylko 1 spełnia warunek identyczności typu, a '1' już nie.
  • "1" lub '1' – błędne, ponieważ oba zapisy są typu string, więc nie mogą być identyczne z int.

Wskazówka egzaminacyjna: jeśli w odpowiedziach pojawiają się cudzysłowy/apostrofy, traktuj takie wartości jako łańcuchy znaków. Dla === to kluczowe, bo PHP nie wykonuje tu "ratunkowej" konwersji typów jak przy ==.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Operator === w PHP oznacza porównanie ścisłe: zwraca true tylko wtedy, gdy dwa wyrażenia mają tę samą wartość i dokładnie ten sam typ (np. int z int, string ze string).
== porównuje wartości i może wykonywać konwersję typów (np. string na liczbę). === wymaga zgodności wartości i typu. W zadaniach egzaminacyjnych to najczęstsze źródło pomyłek.
Bo 1 to typ int, a '1' to typ string. Przy === PHP nie "dopasowuje" typów, tylko sprawdza identyczność. Różny typ oznacza wynik false.
Tak. Zarówno zapis w podwójnych cudzysłowach ("1"), jak i w apostrofach ('1') tworzy wartość typu string. Różnice dotyczą głównie interpretacji sekwencji specjalnych, a nie typu.
Najczęściej używa się funkcji var_dump() lub gettype(). Dzięki temu widać, czy zmienna jest np. int, string, bool. To pomaga zrozumieć, czemu === daje false.
Typowo dane z formularzy (np. $_POST, $_GET) są łańcuchami znaków (string). Dlatego porównując je z liczbami warto jawnie rzutować lub walidować, aby porównania ścisłe === działały zgodnie z intencją.
Gdy zależy Ci na przewidywalności i bezpieczeństwie logiki, szczególnie przy danych z zewnątrz (formularze, API) oraz przy wartościach granicznych jak 0, "0", false, null. === zmniejsza ryzyko nieoczekiwanych konwersji.
Najczęściej myli się: int z string (np. 1 vs '1'), wartości puste ("", null, 0, false) oraz zakłada się, że === działa jak ==. Warto ćwiczyć krótkie przykłady w kodzie.
Tak. !== oznacza "nieidentyczne", czyli zwraca true, gdy różni się wartość lub typ. To bezpieczniejsze niż !=, bo nie opiera się na niejawnych konwersjach typów.
Najlepiej zrobić tabelę z przykładami: int, string, bool, null i sprawdzić wyniki dla == oraz ===. Dodatkowo ćwicz odczytywanie typu z var_dump(). Na egzaminie zwracaj uwagę na cudzysłowy.
info

Około 58% zdających odpowiada poprawnie na to pytanie. średnie

Według specjalistów z branży: "Operator === w PHP porównuje wartość i typ."

Źródła:

  • PHP Manual – Comparison Operators (=== and ==), https://www.php.net/manual/en/language.operators.comparison.php - accessed 2026-02-18
  • PHP Manual – Types overview (int, string), https://www.php.net/manual/en/language.types.php - accessed 2026-02-18
  • PHP Manual – Strings (string literals in single/double quotes), https://www.php.net/manual/en/language.types.string.php - accessed 2026-02-18

Materiały:

  • Dokumentacja PHP: operatory porównania i tabele zachowania porównań
  • Ćwiczenia: porównania int/string/bool/null w krótkich skryptach
  • Notatka: kiedy używać === oraz !== w typowych zadaniach webowych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego