PHP Sessionida Massivlarni Yozish
Oldingi darsda biz yaratgan kodni ko'rib chiqamiz:
<?php
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Aslida, formaning barcha ma'lumotlarini darhol
$_SESSION ga yozish mumkin edi:
<?php
if (!empty($_GET)) {
$_SESSION = $_GET;
}
?>
Va test2.php faylida shunday qiling:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION);
}
?>
Bunday yondashuvning afzalligi shundaki, bizning kod formadagi maydonlar sonidan qat'iy nazar ishlaydi.
Biroq, kamchiligi ham bor: $_SESSION ni
qayta yozish orqali biz oldin u yerda bo'lgan
barcha ma'lumotlarni o'chiramiz. Boshqa skriptimiz
u erga nima yozganligini bilmaymiz? Va biz uni o'chiramiz.
Keling, boshqacha qilaylik:
<?php
if (!empty($_GET)) {
$_SESSION['nums'] = $_GET;
}
?>
Ko'rib turganingizdek, session o'zgaruvchisiga biz
bitta qiymat emas, balki butun massivni yozdik.
Endi test2.php faylida ushbu massiv elementlari
yig'indisini topishimiz mumkin:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
Bitta sahifada foydalanuvchidan form orqali ism,
yosh, maosh va yana biron bir narsani so'rang.
Ushbu ma'lumotlarni sessionning bitta o'zgaruvchisiga
massiv shaklida yozing. Boshqa sahifaga o'tganda,
saqlangan ma'lumotlarni tsikl bilan aylantiring
va har bir massiv elementini ul tegi ichidagi
li tegida chiqaring.