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 ტეგში.