Lagring av arrays i PHP-økter
La oss se på koden vi laget i forrige leksjon:
<?php
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Egentlig kunne vi ha tatt og lagret
alle skjemadataene direkte i $_SESSION:
<?php
if (!empty($_GET)) {
$_SESSION = $_GET;
}
?>
Og i filen test2.php gjøre slik:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION);
}
?>
Fordelen med denne tilnærmingen er at koden vår vil fungere uavhengig av antall input-felter i skjemaet.
Det er imidlertid også en ulempe: ved å overskrive
$_SESSION sletter vi alle data
som tidligere var der. Hva om en annen
av skriptene våre har lagt noe der? Og vi sletter det.
La oss gjøre det på en annen måte:
<?php
if (!empty($_GET)) {
$_SESSION['nums'] = $_GET;
}
?>
Som du ser, skrev vi ikke bare en enkelt verdi
til øktvariabelen, men en hel array.
Nå kan vi i filen test2.php finne
summen av elementene i denne arrayen:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
På en side, bruk et skjema til å spørre
brukeren om navn, alder, lønn og noe
annet. Lagre disse dataene i en enkelt øktvariabel
i form av en array. Når du går til en annen
side, gjennomgå de lagrede dataene med en loop
og vis hvert element i arrayen i sitt eget
li-element i en ul.