Записване на масиви в сесии на 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.