Autoredirección con adición de parámetros en PHP

Supongamos que en la página index.php se pasa un parámetro GET con el nombre arg. Mostremos su contenido en pantalla:

index.php<?php
  echo $_GET['arg'];
?>

Supongamos que nuestra página no puede funcionar correctamente sin el parámetro GET. En nuestro caso esto es cierto, ya que, si el parámetro no se pasa, el acceso a $_GET['arg'] provocará un error.

Puede surgir la pregunta, ¿por qué alguien accedería a nuestra página sin el parámetro? Después de todo, podemos poner enlaces en todo nuestro sitio con este parámetro. Sin embargo, esto no es una garantía: el usuario de nuestro sitio podría, por ejemplo, copiar un enlace desde algún lugar y perder en el proceso el parámetro. O simplemente eliminarlo accidentalmente al editar la barra de direcciones.

En general, en cualquier caso, nuestro código debe prever esta situación y hacer algo al respecto. ¿Qué se puede hacer?

Podemos verificar la existencia de nuestro parámetro GET y mostrarlo solo si existe:

index.php<?php
  if (isset($_GET['arg'])) {
    echo $_GET['arg'];
  } else {
    // reaccionamos de alguna manera, por ejemplo, con un mensaje
  }
?>

Podemos actuar de manera más astuta:

index.php<?php
  if (!isset($_GET['arg'])) {
    $_GET['arg'] = 'default'; // valor por defecto
  }
  
  echo $_GET['arg']; // garantizado que mostrará algo sin error
?>

O podemos hacer que al acceder a la página sin parámetro ocurra una redirección a la misma página con el parámetro:

index.php<?php
  if (!isset($_GET['arg'])) {
    header('Location: ?arg=default');
  }
  
  echo $_GET['arg']; // el parámetro está garantizado
?>
Задание 1

Explica en qué se diferencia la segunda variante de la tercera.

Задание 2

Supongamos que en la página page.php se puede pasar un número mediante un parámetro GET con el nombre num. Haz que al acceder sin este parámetro, se ejecute automáticamente una redirección a esta misma página, pero con el parámetro num con el valor 1.