PHP-ის სესიებში მასივების ჩაწერა
განვიხილოთ კოდი, რომელიც ჩვენ გავაკეთეთ წინა გაკვეთილში:
<?php
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
სინამდვილეში შეიძლებოდა არსებული მონაცემების ყველა ფორმის
დაუყოვნებლივ ჩაწერა $_SESSION-ში:
<?php
if (!empty($_GET)) {
$_SESSION = $_GET;
}
?>
ხოლო test2.php ფაილში გავაკეთოთ ასე:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION);
}
?>
ასეთი მიდგომის უპირატესობა ისაა, რომ ჩვენი კოდი იმუშავებს ფორმაში არსებული ინპუტების რაოდენობისგან დამოუკიდებლად.
თუმცა, არსებობს ნაკლოვანებაც: $_SESSION-ის
გადაწერით ჩვენ ვშლით ყველა იმ მონაცემს,
რომელიც მანამდე იყო შენახული. ვინ იცის, სხვა
სკრიპტმა რა ჩაწერა იქ? ჩვენ კი ამას ვშლით.
მოდი, სხვანაირად მივუდგეთ:
<?php
if (!empty($_GET)) {
$_SESSION['nums'] = $_GET;
}
?>
როგორც ხედავთ, სესიის ცვლადში ჩავწერეთ
არა ერთი კონკრეტული მნიშვნელობა, არამედ მთელი მასივი.
ახლა კი test2.php ფაილში შეგვიძლია ვიპოვოთ
ამ მასივის ელემენტების ჯამი:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
ერთ გვერდზე, ფორმის გამოყენებით, მომხმარებელს
ჰკითხეთ სახელი, ასაკი, ხელფასი და კიდევ რაიმე.
ჩაწერეთ ეს მონაცემები სესიის ერთ ცვლადში მასივის
სახით. სხვა გვერდზე შესვლისას, გადაუარეთ
შენახულ მონაცემებს ციკლით და გამოიტანეთ თითოეული
ელემენტი მასივიდან ცალკეულ
li ტეგში, რომელიც მდებარეობს ul ტეგში.