Gravando arrays em sessões PHP
Vamos considerar o código que criamos na lição anterior:
<?php
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Na verdade, poderíamos simplesmente pegar
e gravar todos os dados do formulário de uma vez
na $_SESSION:
<?php
if (!empty($_GET)) {
$_SESSION = $_GET;
}
?>
E no arquivo test2.php fazer assim:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION);
}
?>
A vantagem dessa abordagem é que nosso código funcionará independentemente do número de inputs no formulário.
No entanto, há uma desvantagem: ao sobrescrever
a $_SESSION, apagamos todos os dados
que estavam lá anteriormente. Quem sabe o que
outro script nosso escreveu lá? E nós vamos apagar isso.
Vamos fazer de outra forma:
<?php
if (!empty($_GET)) {
$_SESSION['nums'] = $_GET;
}
?>
Como você pode ver, gravamos na variável de sessão
não um único valor, mas um array inteiro.
Agora, no arquivo test2.php, podemos encontrar
a soma dos elementos desse array:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
Em uma página, usando um formulário, pergunte
ao usuário o nome, idade, salário e mais
alguma coisa. Grave esses dados em uma variável
de sessão na forma de um array. Ao acessar outra
página, percorra os dados salvos com um loop
e exiba cada elemento do array em sua própria
tag li dentro de uma tag ul.