KWALIFIKACJA INF3 - STYCZEŃ 2017

PYTANIE NR 30.
Które z poniższych zdań dotyczących zasad programowania w języku PHP jest prawdziwe?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
PHP jest językiem dynamicznie i raczej słabo typowanym: typ zmiennej wynika z przypisanej wartości, a w wielu sytuacjach zachodzą konwersje niejawne. Pozostałe stwierdzenia są fałszywe: zmienne w PHP poprzedza się znakiem $, nie deklaruje się ich słowem var, a nazwy zmiennych są czułe na wielkość liter.

Pełne wyjaśnienie:

Poprawne jest stwierdzenie, że PHP to język o dynamicznym i w praktyce słabym typowaniu. Oznacza to, że:

  • nie trzeba deklarować typu zmiennej przed użyciem (typ wynika z przypisanej wartości),
  • PHP często wykonuje niejawne konwersje typów (np. w porównaniach lub działaniach), co może prowadzić do zaskakujących wyników, jeśli nie stosuje się świadomie reguł porównywania.

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • "Nazwy zmiennych są poprzedzone znakiem !" – w PHP zmienne zapisuje się z prefiksem $. Znak ! ma inne znaczenie (negacja logiczna) i nie służy do tworzenia identyfikatorów zmiennych.
  • "Deklaracja zmiennych następuje po słowie var" – w nowoczesnym PHP nie deklaruje się zmiennych słowem kluczowym; wystarczy przypisanie wartości do nazwy z $. Słowo var bywa kojarzone z innymi językami (np. JavaScript, C#), a w PHP występuje w innym kontekście (historycznie/klasowo), nie jako obowiązkowa deklaracja zmiennej.
  • "W nazwach zmiennych nie jest rozróżniana wielkość liter." – w PHP nazwy zmiennych są czułe na wielkość liter, więc $nazwa i $Nazwa to różne zmienne. To częste źródło błędów, zwłaszcza przy kopiowaniu kodu lub pracy zespołowej.

Wskazówka egzaminacyjna: gdy w odpowiedziach pojawiają się elementy składni (np. prefiks zmiennych), warto przypomnieć sobie najprostszy przykład kodu w PHP: zmienna zawsze ma $, a typ ustala się automatycznie podczas przypisania. Dodatkowo, przy porównaniach danych z formularzy, bezpieczniej stosować porównania ścisłe (to ogranicza skutki niejawnych konwersji).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
W praktyce oznacza to, że PHP często wykonuje niejawne konwersje typów (np. string na liczbę lub bool) zależnie od kontekstu. Typ zmiennej nie jest "na sztywno" zadeklarowany, tylko wynika z przypisanej wartości, co wymaga ostrożności w porównaniach i walidacji danych.
Zmienna w PHP jest poprzedzona znakiem $, np. $licznik, $imie. Nazwa może zawierać litery, cyfry i podkreślenie, ale nie może zaczynać się od cyfry. To podstawowa cecha składni odróżniająca PHP od wielu innych języków.
PHP traktuje $dane i $Dane jako dwie różne zmienne. To ważne przy debugowaniu, bo literówka w wielkości liter może powodować "undefined variable" albo błędne działanie logiki. Dobra praktyka to trzymanie spójnej konwencji nazewnictwa w całym projekcie.
W typowym kodzie PHP zmiennych nie deklaruje się słowem kluczowym – zmienna "powstaje" przy pierwszym przypisaniu wartości, np. $x = 5. Słowo var może występować w kontekście właściwości klas, ale nie jest standardowym sposobem deklaracji zmiennych lokalnych.
Niejawna konwersja może sprawić, że porównania i warunki zadziałają inaczej niż oczekujesz, zwłaszcza przy danych tekstowych z formularzy. Dlatego warto świadomie dobierać operatory porównania oraz dbać o jawne rzutowanie lub walidację typu przed użyciem wartości.
Operator == porównuje wartości z uwzględnieniem możliwej konwersji typów, a === porównuje zarówno wartość, jak i typ (porównanie ścisłe). W zadaniach i praktyce webowej często bezpieczniejsze jest używanie ===, bo ogranicza pułapki słabego typowania.
W PHP ! to operator negacji logicznej (odwraca wartość true/false w warunkach). Składnia zmiennych jest inna: identyfikator zmiennej zawsze zaczyna się od $. Mylenie tych symboli wynika zwykle z kojarzenia ! z "ważnym" znakiem w warunkach.
Częste błędy to: pomijanie znaku $, używanie spacji lub polskich znaków bez świadomości konsekwencji, zaczynanie nazwy od cyfry oraz niespójna wielkość liter (np. $User i $user). Warto stosować jedną konwencję i sprawdzać kod pod kątem literówek.
Pomaga przy szybkim prototypowaniu, bo nie wymaga deklarowania typów i ułatwia pracę z danymi z HTTP. Przeszkadza, gdy niejawne konwersje ukrywają błędy (np. niepoprawne dane wejściowe). Wtedy potrzebujesz walidacji, testów i ostrożności w porównaniach.
Skup się na fundamentach: składnia zmiennych z $, zasady nazewnictwa, podstawowe typy i konwersje, operatory porównania oraz różnice między językami. Przećwicz krótkie przykłady kodu: przypisania, if/else, porównania == i === oraz odczyt danych z formularzy.
info

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

Eksperci podkreślają: "PHP jest językiem dynamicznie i raczej słabo typowanym: typ zmiennej wynika z przypisanej wartości, a w wielu sytuacjach zachodzą konwersje niejawne."

Źródła:

  • PHP Manual: Types - https://www.php.net/manual/en/language.types.php (dostęp: 2026-02-18)
  • PHP Manual: Variables - https://www.php.net/manual/en/language.variables.php (dostęp: 2026-02-18)
  • PHP Manual: Comparison Operators - https://www.php.net/manual/en/language.operators.comparison.php (dostęp: 2026-02-18)

Materiały:

  • Oficjalna dokumentacja PHP: rozdziały o typach i zmiennych
  • Materiały kursowe o typowaniu (silne/słabe, statyczne/dynamiczne) w kontekście PHP
  • Ćwiczenia praktyczne: porównania == vs ===, konwersje string/int/bool

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego