PHP-ի սեսիաներում զանգվածների գրանցում

Դիտարկենք նախորդ դասում մեր ստեղծած կոդը.

html<?php
  if (!empty($_GET)) {
    $_SESSION['num1'] = $_GET['num1'];
    $_SESSION['num2'] = $_GET['num2'];
  }
?>

Իրականում կարելի էր վերցնել և անմիջապես գրանցել ձևի բոլոր տվյալները $_SESSION-ում.

test1.php<?php
  if (!empty($_GET)) {
    $_SESSION = $_GET;
  }
?>

Իսկ test2.php ֆայլում անել այսպես.

test2.php<?php
  if (!empty($_SESSION)) {
    echo array_sum($_SESSION);
  }
?>

Նման մոտեցման առավելությունն այն է, որ մեր կոդը կաշխատի անկախ ֆորմայի input-ների քանակից:

Սակայն կա նաև թերություն. Վերագրելով $_SESSION-ին, մենք ջնջում ենք բոլոր տվյալները, որոնք նախկինում կային այնտեղ: Ով գիտի, թե ինչ է գրել մեր մեկ այլ սկրիպտը: Իսկ մենք դա կջնջենք:

Եկեք անենք այլ կերպ.

test2.php<?php
  if (!empty($_GET)) {
    $_SESSION['nums'] = $_GET;
  }
?>

Ինչպես տեսնում եք, սեսիայի փոփոխականի մեջ մենք գրեցինք ոչ թե մեկ որոշակի արժեք, այլ մի ամբողջ զանգված: Այժմ test2.php ֆայլում կարող ենք գտնել այդ զանգվածի տարրերի գումարը.

test2.php<?php
  if (!empty($_SESSION)) {
    echo array_sum($_SESSION['nums']);
  }
?>
Задание 1

Մի էջում, օգտագործելով ֆորմա, հարցրեք օգտագործողի անունը, տարիքը, աշխատավարձը և էլ ինչ-որ բան: Գրանցեք այս տվյալները սեսիայի մեկ փոփոխականի մեջ՝ որպես զանգված: Մեկ այլ էջ այցելելիս անցեք պահպանված տվյալների վրայով ցիկլով և արտածեք զանգվածի յուրաքանչյուր տարր իր li տեգում, որը գտնվում է ul տեգի մեջ: