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);
}
?>
Бул ыкманын артыкчылыгы - биздин код формада канча input болбосун, иштей берет.
Бирок, кемчилиги да бар: $_SESSION
кайра жазганда, андагы мурунтан бар болгон
бардык маалыматтар өчүрүлөт. Башка скрипттер
ал жерге эмнени жазып койгон болсо, биз аны
жок кылып жатабыз.
Келгиле, башкача кылалы:
<?php
if (!empty($_GET)) {
$_SESSION['nums'] = $_GET;
}
?>
Көрүнүп тургандай, биз сессия өзгөрмөсүнө бир
маани эмес, бүтүн массив жазып койдук.
Эми test2.php файлында ушул массивдин
элементтеринин суммасын таба алабыз:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
Бир баракчада форманы колдонуп, колдонуучудан
атын, жашын, эмгек акысын жана дагы бир нерсени
сураңыз. Бул маалыматтарды бир сессия өзгөрмөсүнө
массив түрүндө жазыңыз. Экинчи баракчага киргенде,
сакталган маалыматтарды цикл менен айлантып, ар
бир массив элементин өзүнүн li тегинде,
ul тегинин ичинде чыгарыңыз.