Masīvu ierakstīšana PHP sesijās
Apskatīsim kodu, ko izveidojām iepriekšējā nodarbībā:
<?php
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Patiesībā varēja paņemt un ierakstīt
visus formas datus uzreiz $_SESSION:
<?php
if (!empty($_GET)) {
$_SESSION = $_GET;
}
?>
Un failā test2.php izdarīt šādi:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION);
}
?>
Šādas pieejas priekšrocība ir tā, ka mūsu kods darbosies neatkarīgi no ievades lauku skaita formā.
Tomēr ir arī trūkums: pārrakstot
$_SESSION mēs aizstājam visus datus,
kas tur bija iepriekš. Kas tad, ja kāds cits
mūsu skripts tur kaut ko ierakstīja? Un mēs to izdzēsīsim.
Rīkosimies citādi:
<?php
if (!empty($_GET)) {
$_SESSION['nums'] = $_GET;
}
?>
Kā redzat, sesijas mainīgajā mēs ierakstījām
nevis kādu atsevišķu vērtību, bet gan veselu masīvu.
Tagad failā test2.php varam atrast
šī masīva elementu summu:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
Vienā lapā, izmantojot formu, pajautājiet
lietotājam vārdu, vecumu, algu un vēl
kaut ko. Ierakstiet šos datus vienā sesijas
mainīgajā masīva veidā. Ieejot citā
lapā, izmantojot ciklu, izvadiet saglabātos datus
katru masīva elementu savā
tagā li tagā ul.