Zachowywanie wybranej wartości w checkboxie po wysłaniu w PHP

Zróbmy teraz tak, aby wartość checkboxa była zachowywana po wysłaniu. W tym celu sprawdzimy, że $_GET['flag'] istnieje (czyli nastąpiło wysłanie formularza) i jest równe jeden (czyli pole wyboru jest zaznaczone).

Jeśli te dwa warunki są spełnione, to wypiszemy w checkboxie atrybut checked:

html<form action="" method="GET">
  <input type="hidden" name="flag" value="0">
  <input
    type="checkbox"
    name="flag" <?php
      if (isset($_GET['flag']) and $_GET['flag'] === '1')
        echo 'checked';
      ?>
    >
  <input type="submit">
</form>

Sprawdzanie można uprościć, jeśli dokładnie wiemy, że ukryty input przekazuje 0. W takim przypadku, jeśli checkbox nie jest zaznaczony, to w $_GET['flag'] będzie leżeć '0', a jeśli wysyłanie formularza jeszcze nie nastąpiło, to będzie leżeć null.

W obu tych przypadkach nie powinniśmy wypisywać checked. I oba te przypadki możemy wyłapać funkcją empty. W ten sposób możemy sprawdzić, że $_GET['flag'] nie jest pusty, i tylko w tym przypadku wypisać checked:

html<form action="" method="GET">
  <input type="hidden" name="flag" value="0">
  <input
    type="checkbox"
    name="flag"
    value="1"
    <?php if (!empty($_GET['flag'])) echo 'checked' ?>
  >
  <input type="submit">
</form>
Задание 1

Zrób trzy checkboxy, które będą zachowywać swoją wartość po wysłaniu.