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