Запазване на избраната стойност в checkbox след изпращане в PHP

Нека сега направим така, че стойността на checkbox да се запазва след изпращане. За това ще проверим дали $_GET['flag'] съществува (тоест има изпращане на форма) и е равна на единица (тоест квадратчето е отметнато).

Ако тези две условия са изпълнени, ще изведем в checkbox атрибута 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>

Проверката може да се опрости, ако знаем със сигурност, че скритото поле за въвеждане предава 0. В такъв случай, ако checkbox не е отметнат, то в $_GET['flag'] ще има '0', а ако формата още не е била изпратена, то ще има null.

И в двата случая не трябва да извеждаме checked. И двата случая можем да хванем с функцията empty. По този начин можем да проверим, че $_GET['flag'] не е празен, и само в този случай да изведем 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

Направете три checkbox-а, които ще запазват стойността си след изпращане.