Conservación del valor seleccionado en un checkbox después del envío en PHP

Ahora hagamos que el valor del checkbox se conserve después del envío. Para esto, verifiquemos que $_GET['flag'] exista (es decir, que el formulario fue enviado) y sea igual a uno (es decir, que la casilla esté marcada).

Si estas dos condiciones se cumplen, entonces mostraremos el atributo checked en el checkbox:

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>

La verificación se puede simplificar si sabemos con certeza que el input oculto envía 0. En tal caso, si el checkbox no está marcado, entonces en $_GET['flag'] estará '0', y si el formulario aún no se ha enviado, entonces estará null.

En ambos casos no debemos mostrar checked. Y ambos casos los podemos detectar con la función empty. Así podemos verificar que $_GET['flag'] no esté vacío, y solo en ese caso mostrar 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

Crea tres checkboxes que conserven su valor después del envío.