KWALIFIKACJA INF3 - CZERWIEC 2022

PYTANIE NR 11.
Przedstawiony błąd, wygenerowany podczas interpretacji kodu PHP, może być spowodowany
Ilustracja przedstawia komunikat błędu wygenerowany podczas interpretacji kodu PHP.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawna jest odpowiedź "próbą odwołania się do nieistniejącego elementu tablicy", bo komunikaty tego typu w PHP pojawiają się, gdy kod odczytuje indeks/klucz, którego w tablicy nie ma. Pozostałe opcje dotyczą warstwy bazy danych (kwerenda/połączenie) albo braku deklaracji zmiennej, a nie problemu z kluczem tablicy.

Pełne wyjaśnienie:

W PHP tablice są strukturą, z której odczytuje się wartości przez podanie klucza (np. tekstowego) lub indeksu (liczbowego). Jeżeli kod próbuje odczytać element, którego w tablicy nie ma, interpreter generuje komunikat diagnostyczny (w zależności od wersji i konfiguracji raportowania błędów może to być komunikat typu notice/warning). Taki komunikat zwykle wskazuje, że użyto nieistniejącego klucza/indeksu, np. gdy dane wejściowe nie zawierają oczekiwanego pola.

Dlatego odpowiedź "próbą odwołania się do nieistniejącego elementu tablicy" jest właściwa: opisuje typową przyczynę komunikatu o braku klucza/indeksu w tablicy. W praktyce naprawa polega na walidacji danych i sprawdzaniu istnienia klucza przed odczytem (np. przez warunek sprawdzający obecność wartości), ewentualnie ustawieniu wartości domyślnej.

  • Opcja "niepowodzeniem wydania kwerendy na bazie danych" jest błędna, bo błąd kwerendy pochodzi z warstwy bazy danych (MySQLi) i zwykle ma inny komunikat (dotyczący zapytania SQL), a nie odwołania do klucza tablicy.
  • Opcja "odwołaniem się do niezadeklarowanej zmiennej" dotyczy sytuacji, gdy użyto zmiennej, której wcześniej nie ustawiono (np. brak przypisania). To inna klasa problemu niż brak elementu w tablicy; w komunikacie dla tablicy pojawiają się odniesienia do indeksu/klucza, a nie do samej zmiennej jako takiej.
  • Opcja "brakiem bazy danych o nazwie wskazanej w funkcji mysqli_connect" jest błędna, bo brak bazy/nieprawidłowe połączenie powoduje błąd połączenia lub wyboru bazy w MySQLi, a nie komunikat o nieistniejącym elemencie tablicy w PHP.

Wskazówka egzaminacyjna: najpierw rozpoznaj, czy komunikat dotyczy PHP (zmienna/tablica/typ), czy SQL/MySQLi (połączenie/kwerenda). To zwykle natychmiast zawęża właściwą przyczynę.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
To komunikat, że kod próbuje odczytać klucz/indeks, którego w tablicy nie ma. Najczęściej wynika to z braku danych wejściowych, literówki w nazwie klucza lub innej struktury tablicy niż oczekiwano. Rozwiązaniem jest walidacja danych i sprawdzanie istnienia klucza.
Błędy tablicy w PHP odnoszą się do klucza/indeksu i wskazują na problem w kodzie PHP (struktura danych). Błędy MySQLi zwykle zawierają informacje o połączeniu, zapytaniu SQL, uprawnieniach lub nazwie bazy. Najpierw sprawdź, czy komunikat wspomina o SQL/MySQLi.
Najczęściej dlatego, że tablica nie została wypełniona zgodnie z założeniem (np. brak parametru z formularza), albo klucz jest dynamiczny i czasem nie występuje. Częsty mechanizm to użycie danych z $_GET/$_POST bez sprawdzenia, czy dane pole rzeczywiście istnieje.
Stosuje się warunek sprawdzający obecność klucza/elementu przed użyciem wartości. W praktyce łączy się to z walidacją danych wejściowych i ustawianiem wartości domyślnych. Dzięki temu unikasz komunikatów diagnostycznych i błędów logiki w aplikacji.
Nie. Niezadeklarowana (nieustawiona) zmienna oznacza, że sama zmienna nie ma wartości, bo nie została wcześniej przypisana. Brak elementu tablicy oznacza, że tablica istnieje, ale nie ma w niej danego klucza/indeksu. To różne przyczyny i różne sposoby naprawy.
Gdy komunikat dotyczy połączenia z serwerem bazy, uwierzytelnienia, wyboru bazy lub parametrów połączenia. Wtedy problem jest w konfiguracji (host, użytkownik, hasło, nazwa bazy) albo w dostępności serwera. Nie myl tego z komunikatami o tablicach lub zmiennych.
To m.in. wysłanie formularza inną metodą niż oczekiwana, brak atrybutu name w polu formularza, wyłączone/źle nazwane parametry w adresie URL, przekierowanie bez przeniesienia danych lub filtracja danych. Zawsze weryfikuj, czy dane rzeczywiście przyszły do skryptu.
W nowszych wersjach PHP zmieniały się szczegóły komunikatów diagnostycznych (np. nazwy i klasy ostrzeżeń) oraz ich domyślna forma. Sens problemu pozostaje podobny: nadal chodzi o próbę odczytu nieistniejącego klucza/indeksu, ale brzmienie komunikatu może być inne.
Sprawdź logi błędów serwera i PHP, odtwórz warunki wejściowe (parametry, formularz), a następnie zweryfikuj, jaka jest realna zawartość tablicy w danym miejscu kodu. Pomaga też uruchomienie środowiska testowego z włączonym raportowaniem błędów podczas developmentu.
Ćwicz na krótkich fragmentach kodu i prawdziwych komunikatach z logów: rozpoznawaj, czy problem dotyczy tablic, zmiennych, typów danych czy bazy. Ucz się mapowania komunikat → przyczyna → typowa naprawa (walidacja danych, poprawa klucza, obsługa błędów MySQLi).
info

Statystycznie 44% uczniów zna prawidłową odpowiedź. trudne

Specjaliści zwracają uwagę: "Poprawna jest odpowiedź "próbą odwołania się do nieistniejącego elementu tablicy", bo komunikaty tego typu w PHP pojawiają się, gdy kod odczytuje indeks/klucz, którego w tablicy nie ma."

Źródła:

  • PHP Manual: Arrays — Overview, https://www.php.net/manual/en/language.types.array.php (dostęp: 2026-02-27)
  • PHP Manual: Error Reporting, https://www.php.net/manual/en/function.error-reporting.php (dostęp: 2026-02-27)
  • PHP Manual: mysqli_connect, https://www.php.net/manual/en/mysqli.connect.php (dostęp: 2026-02-27)

Materiały:

  • Dokumentacja PHP: sekcje o tablicach i o obsłudze błędów
  • Ćwiczenia z analizy przykładowych komunikatów z logów serwera (error_log)
  • Materiały szkolne z INF.3 dotyczące debugowania i pracy z PHP/MySQL

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego