PHP да параметр қўшиш билан ўзига қайта йўналтириш

Саҳифа index.php да arg номли GET параметри юзга келтирилсин. Унинг ичидаги маълумотни экранга чиқарамиз:

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

Бизнинг саҳифамиз GET параметрисз ишлай олмасин. Бизнинг ҳолатимизда, параметр юзга келтирилмаган бўлса, $_GET['arg'] га муроожат хатоликка олиб келади.

Савл тугʻилиши мумкин, нега инсон умуман параметрсиз бизнинг саҳифага тушсин? Axir биз сайтимизда бу параметр билан ҳаволаларни қўйишимиз мумкин. Аммо, бу кафолат эмас: сайтимизнинг фойдаланувчиси, масалан, бирор жойдан ҳаволани нусхалаб олиб, шу пайтда параметрни йўқотиб қўйиши мумкин. Ёки жуда оддийгина уни тасодифан ўчириб қўйиши мумкин, манзил сатрини таҳрирлаш жараёнида.

Умуман, ҳар қандай ҳолатда бизнинг кодимиз бундай вазниятни ҳисобга олиши керак ва унинг билан бирор иш қилиши керак. Нима қилиш мумкин?

Бизнинг 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 саҳифасида num номли GET параметри ёрдамида сон юбориш мумкин бўлсин. Бу параметрсиз кирилганда, автоматик равишда ўзига қайта йўналтирилишини, лекин num паратрнинг қиймати 1 бўлган ҳолдагина бажарилишини таъминланг.