Запіс масіваў у сесіі 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.