PHP-da Parametrlar Qo‘shib O‘z-o‘ziga Qayta Yo‘naltirish

Faraz qilaylik, index.php sahifasiga arg nomli GET parametri uzatilgan. Keling, uning tarkibini ekranga chiqaramiz:

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

Faraz qilaylik, bizning sahifamiz GET parametrisiz to‘g‘ri ishlay olmaydi. Bizning holatda bu haqiqatan ham shunday, chunki agar parametr uzatilmasa, $_GET['arg'] ga murojaat xatolikka olib keladi.

Savol tug‘ilishi mumkin: nega umuman odam parametrsiz sahifamizga tushadi? Axir biz saytimizning hamma joyida ushbu parametr bilan havolalarni qo‘yishimiz mumkin. Biroq, bu kafolat emas: misol uchun, saytimiz foydalanuvchisi havolani biron joydan nusxalab olayotganda parametrni yo‘qotib qo‘yishi mumkin. Yoki oddiygina uni tasodifan o‘chirib tashlashi mumkin, manzil satrini tahrirlaganda.

Umuman olganda, har qanday holatda ham bizning kodimiz bunday vaziyatni hisobga olishi va unga nimanidir qilishi kerak. Nima qilish mumkin?

Bizning GET parametrimizning mavjudligini tekshirish mumkin va uni faqat mavjud bo‘lsagina chiqarish mumkin:

index.php<?php
  if (isset($_GET['arg'])) {
    echo $_GET['arg'];
  } else {
    // qandaydir reaksiya, masalan, xabar bilan
  }
?>

Yoki aqlliroq usul qo‘llash mumkin:

index.php<?php
  if (!isset($_GET['arg'])) {
    $_GET['arg'] = 'default'; // standart qiymat
  }
  
  echo $_GET['arg']; // xatosiz nimadir chiqarishi kafolatlanadi
?>

Yoki parametrsiz sahifaga kirishda, shu sahifaga parametr bilan qayta yo‘naltirish amalga oshirilishi mumkin:

index.php<?php
  if (!isset($_GET['arg'])) {
    header('Location: ?arg=default');
  }
  
  echo $_GET['arg']; // parametr mavjudligi kafolatlanadi
?>
Задание 1

Ikkinchi variant va uchinchi variant o‘rtasidagi farqni tushuntiring.

Задание 2

Faraz qilaylik, page.php sahifasiga num nomli GET parametri orqali raqam uzatilishi mumkin. Ushbu parametr uzatilmagan holda kirishda, avtomatik ravishda shu sahifaga, lekin num parametri 1 qiymatida bo‘lgan holda qayta yo‘naltirish bajariladigan qiling.