Саморедирект с добавяне на параметри в PHP

Нека на страницата index.php се предава GET параметър с име arg. Нека изведем съдържанието му на екрана:

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

Нека нашата страница без GET параметър не може да работи коректно. В нашия случай това наистина е така, защото ако параметърът не е предаден, то достъпването до $_GET['arg'] ще доведе до грешка.

Може да възникне въпросът, защо изобщо човек ще попадне на нашата страница без параметър? В крайна сметка ние можем навсякъде в нашия сайт да поставяме връзки с този параметър. Обаче, това не е гаранция: потребителят на нашия сайт може, например, да копира отнякъде връзката и да загуби при това параметъра. Или просто случайно да го изтрие, редактирайки адресната лента.

Във всеки случай нашият код трябва да предполага такава ситуация и да направи нещо с нея. Какво може да се направи?

Може да проверим нашия GET параметър за съществуване и да го изведем, само ако той съществува:

index.php<?php
  if (isset($_GET['arg'])) {
    echo $_GET['arg'];
  } else {
    // реагираме по някакъв начин, например със съобщение
  }
?>

Може да постъпим по-хитро:

index.php<?php
  if (!isset($_GET['arg'])) {
    $_GET['arg'] = 'default'; // стойност по подразбиране
  }
  
  echo $_GET['arg']; // гарантирано ще изведе нещо без грешка
?>

А може да направим така, че при достъп до страницата без параметър да се извърши редирект към същата страница с параметър:

index.php<?php
  if (!isset($_GET['arg'])) {
    header('Location: ?arg=default');
  }
  
  echo $_GET['arg']; // параметърът е гарантиран
?>
Задание 1

Разкажете каква е разликата между втория вариант и третия.

Задание 2

Нека на страницата page.php може да се предаде число с помощта на GET параметър с име num. Направете така, че при достъп без този параметър, автоматично да се извърши редирект към същата страница, но с параметър num със стойност 1.