Запись массивов в сессии 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); } ?>

Преимущество такого подхода в том, что наш код будет работать независимо от количества инпутов в форме.

Есть, однако, и недостаток: перезаписывая $_SESSION мы затираем все данные, которые там ранее были. Мало ли что туда написал другой наш скрипт? А мы это удалим.

Давайте поступим по-другому:

<?php if (!empty($_GET)) { $_SESSION['nums'] = $_GET; } ?>

Как вы видите, в переменную сессии мы записали не одно какое-то значение, а целый массив. Теперь в файле test2.php можем найти сумму элементов этого массива:

<?php if (!empty($_SESSION)) { echo array_sum($_SESSION['nums']); } ?>

На одной странице с помощью формы спросите у пользователя имя, возраст, зарплату и еще что-нибудь. Запишите эти данные в одну переменную сессии в виде массива. При заходе на другую страницу переберите сохраненные данные циклом и выведите каждый элемент массива в своем теге li тега ul.