Almacenamiento de arrays en sesiones PHP
Consideremos el código que creamos en la lección anterior:
<?php
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
En realidad, podríamos haber tomado y almacenado
todos los datos del formulario directamente en $_SESSION:
<?php
if (!empty($_GET)) {
$_SESSION = $_GET;
}
?>
Y en el archivo test2.php hacer esto:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION);
}
?>
La ventaja de este enfoque es que nuestro código funcionará independientemente de la cantidad de inputs en el formulario.
Sin embargo, también hay una desventaja: al sobrescribir
$_SESSION, borramos todos los datos
que previamente estaban allí. ¿Quién sabe qué
había escrito allí nuestro otro script? Y nosotros lo eliminamos.
Hagámoslo de otra manera:
<?php
if (!empty($_GET)) {
$_SESSION['nums'] = $_GET;
}
?>
Como puedes ver, en la variable de sesión almacenamos
no un valor específico, sino un array completo.
Ahora en el archivo test2.php podemos encontrar
la suma de los elementos de este array:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
En una página, usando un formulario, pregunte
al usuario su nombre, edad, salario y algo
más. Almacene estos datos en una variable de
sesión en forma de array. Al acceder a otra
página, recorra los datos guardados con un ciclo
y muestre cada elemento del array en su propia
etiqueta li dentro de una etiqueta ul.