PHPでのパラメータ追加を伴う自己リダイレクト

ページ index.php で、 名前が arg のGETパラメータが渡されるとします。 その内容を画面に表示しましょう:

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番目の方法と3番目の方法の違いを説明してください。

Задание 2

ページ page.php で、 名前が num のGETパラメータを使って 数値を渡せるとします。このパラメータなしで アクセスした場合、自動的にその同じページへ、 パラメータ num の値を 1 として リダイレクトされるようにしてください。