PHP Sessionда массивларни ёзиш

Олдинги дарсда биз ясаган кодни кўриб чиқамиз:

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

Бир саҳифада форма ёрдамида фойдаланувчидан исм, ёш, маош ва яна бирор нарса сўранг. Ушбу маълумотларни сессиянинг битта ўзгарувчисига массив кўринишида ёзинг. Бошқа саҳифага кирганда, сақланган маълумотларни цикл ёрдамида айлантириб, хар бир массив элементини ul тегининг li тегида чиқаринг.