W budowie
Punkt kontrolny · Diagnostyka Sprawdź opanowanie struktur danych i modularności kodu przed wejściem w sesje i bazy danych

PUNKT KONTROLNY 03

Pola wyboru, tablice i funkcje: checkbox, radio, tablice asocjacyjne i własne funkcje

Części 07–09 to przejście od prostych formularzy do zaawansowanego przetwarzania danych. Zanim przejdziesz do sesji i ciasteczek (Część 10) oraz zapytań SQL do bazy danych (Część 11), upewnij się, że bezbłędnie operujesz na tablicach i potrafisz pisać czyste, modularne funkcje.

Dlaczego ten punkt kontrolny jest kluczowy?

  • Pola wielokrotnego wyboru (checkbox, radio) oraz listy tablicowe to stały element arkuszy praktycznych INF.03 — od systemów zamówień po konfiguratory usług.
  • Własne funkcje to klucz do modularnego kodu: rozdzielają logikę obliczeń (wzory, rabaty, podatki) od warstwy widoku HTML.
  • Test bada pułapki, na których uczniowie najczęściej tracą punkty: brak klucza niezaznaczonego checkboxa w żądaniu HTTP, zasięg zmiennych (variable scope), indeksowanie od zera oraz brak instrukcji return.
  • Jeśli popełnisz błąd — nie zgaduj. Przeczytaj podpowiedź diagnostyczną i wróć na 5 minut do wskazanego ćwiczenia.

Quiz diagnostyczny — sprawdź swoją pewność

Zaznacz odpowiedzi i kliknij przycisk na dole. Błędne odpowiedzi wskażą Ci dokładnie te ćwiczenia, które warto powtórzyć.

1. Użytkownik wysłał formularz, ale pozostawił pole <input type="checkbox" name="zgoda" value="1"> NIEZAZNACZONE. Co znajdzie się w tablicy $_POST pod kluczem 'zgoda'?
2. Uczeń stworzył trzy opcje wyboru dostawy: Kurier, Paczkomat i Poczta. Podczas testowania zauważył, że może zaznaczyć wszystkie trzy naraz. Jaki błąd popełnił w kodzie HTML?
3. Do formularza dodano ukryte pole: <input type="hidden" name="rabat" value="50">. Które stwierdzenie dotyczące tego pola jest PRAWDZIWE?
4. Jak poprawnie zachować wpisaną treść w wielowierszowym polu <textarea> po nieudanej walidacji formularza?
5. Jaki napis wyświetli poniższy fragment kodu?
<?php
$owoce = ['jabłko', 'banan', 'gruszka'];
echo $owoce[1];
?>
6. Posiadasz tablicę asocjacyjną $ceny = ['chleb' => 4.50, 'masło' => 7.20];. Który zapis pętli foreach poprawnie odczyta nazwę produktu jako klucz i cenę jako wartość?
7. Z formularza pobrano datę: $data = '2026-10-16';. Który kod poprawnie rozbije ten tekst i wypisze numer miesiąca (10)?
8. Wywołano funkcję in_array('VIP', $role), ale element 'VIP' nie występuje w tablicy $role. Co dokładnie zwróci funkcja?
9. Jaki wynik wyświetli poniższy skrypt i dlaczego?
<?php
$rabat = 10;
function naliczCene($kwota) {
    return $kwota - $rabat;
}
echo naliczCene(100);
?>
10. Co zostanie przypisane do zmiennej $wynik po wykonaniu poniższego kodu?
<?php
function wyswietlKomunikat($tresc) {
    echo "Wiadomość: " . $tresc;
}
$wynik = wyswietlKomunikat('Zapisano');
?>
11. Dlaczego poniższa definicja funkcji jest NIEPOPRAWNA według reguł języka PHP?
<?php
function obliczKoszt($stawka = 20, $godziny) {
    return $stawka * $godziny;
}
?>
12. W nagłówku funkcji zapisano: function czyDostepny(int $ilosc): bool. Za co odpowiada fragment : bool?

Matryca powtórek

Jeśli po kliknięciu sprawdzenia któreś pytanie zaznaczyło się na czerwono, poniższa tabela wskazuje dokładne ćwiczenie, które pozwoli Ci to przećwiczyć w praktyce:

PytaniaObszar wiedzyRekomendowane ćwiczenie
Pytania 1–2Checkbox w żądaniu HTTP oraz wspólna nazwa grupy radiom07-11 (Checkbox i isset) oraz m07-10 (Grupa pól radio)
Pytania 3–4Pole ukryte (hidden) oraz zachowanie zawartości w textaream07-16 (Pole ukryte hidden) oraz m07-3 (Wielowierszowe textarea)
Pytania 5–6Indeksowanie tablic od zera oraz pętla foreach ($klucz => $wartosc)m08-13 (Indeks 0 tablicy) oraz m08-10 (Foreach z kluczem)
Pytania 7–8Funkcje tablicowe explode/implode oraz wyszukiwanie in_arraym08-15 (Podział daty przez explode) oraz m08-1 (Wyszukiwanie in_array)
Pytania 9–10Zasięg zmiennych (variable scope) oraz return vs echom09-14 (Izolacja zasięgu) oraz m09-5 (Brakujący return)
Pytania 11–12Kolejność parametrów domyślnych i deklaracje typów (: bool)m09-10 (Parametr domyślny) oraz m09-2 (Formatowanie statusu z typami)