PHP Sessionда массивларни ёзиш
Олдинги дарсда биз ясаган кодни кўриб чиқамиз:
<?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']);
}
?>
Бир саҳифада форма ёрдамида фойдаланувчидан
исм, ёш, маош ва яна бирор нарса сўранг. Ушбу
маълумотларни сессиянинг битта ўзгарувчисига
массив кўринишида ёзинг. Бошқа саҳифага кирганда,
сақланган маълумотларни цикл ёрдамида айлантириб,
хар бир массив элементини ul тегининг
li тегида чиқаринг.