Записване на масиви в сесии на 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);
  }
?>

Предимството на този подход е, че нашият код ще работи независимо от броя на полетата във формата.

Има обаче и недостатък: презаписвайки $_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.