Redirecionamento automático com adição de parâmetros em PHP

Suponha que na página index.php seja passado um parâmetro GET com o nome arg. Vamos exibir seu conteúdo na tela:

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

Suponha que nossa página não possa funcionar corretamente sem o parâmetro GET. No nosso caso, isso é verdade, pois, se o parâmetro não for passado, o acesso a $_GET['arg'] resultará em um erro.

Pode surgir a pergunta: por que alguém acessaria nossa página sem o parâmetro? Afinal, podemos colocar links em todo o nosso site com esse parâmetro. No entanto, isso não é uma garantia: o usuário do nosso site pode, por exemplo, copiar um link de algum lugar e perder o parâmetro no processo. Ou simplesmente apagá-lo acidentalmente ao editar a barra de endereços.

De qualquer forma, nosso código deve prever essa situação e fazer algo sobre ela. O que pode ser feito?

Podemos verificar se nosso parâmetro GET existe e exibi-lo apenas se ele existir:

index.php<?php
  if (isset($_GET['arg'])) {
    echo $_GET['arg'];
  } else {
    // reagimos de alguma forma, por exemplo, com uma mensagem
  }
?>

Podemos agir de forma mais esperta:

index.php<?php
  if (!isset($_GET['arg'])) {
    $_GET['arg'] = 'default'; // valor padrão
  }
  
  echo $_GET['arg']; // garantidamente exibirá algo sem erro
?>

Ou podemos fazer com que, ao acessar a página sem o parâmetro, ocorra um redirecionamento para a mesma página com o parâmetro:

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

Explique qual é a diferença entre a segunda opção e a terceira.

Задание 2

Suponha que na página page.php seja possível passar um número usando um parâmetro GET com o nome num. Faça com que, ao acessar sem este parâmetro, um redirecionamento automático seja executado para esta mesma página, mas com o parâmetro num com o valor 1.