Действительно ли возможно сделать массив переменной сеанса в PHP?
Ситуация состоит в том, что у меня есть таблица (страница 1) с некоторыми ячейками, имеющими ссылку на конкретную страницу. Следующая страница будет иметь список имен (страница 2, которую я хочу сохранить в массиве сессии) с их соответствующими флажками. При представлении этой формы это приведет к странице транзакции (страница 3, где значения отправленных флажков сохранены в базе данных для соответствующих имен). Теперь, если я возвращусь к первой странице и нажму другую ячейку, то массив сессии будет содержать новый список имен или старых?
Да, PHP поддерживает массивы в качестве переменных сессии. Смотрите эту страницу для примера.
Что касается вашего второго вопроса: как только вы установите переменную сессии, она останется неизменной, пока вы не измените ее или не снимите
ее. Таким образом, если 3-я страница не изменит переменную сессии, она останется неизменной, пока 2-я страница не изменит ее снова.
Да, вы можете помещать массивы в сессии, пример:
$_SESSION['name_here'] = $your_array;
Теперь вы можете использовать $_SESSION['name_here']
на любой странице, но убедитесь, что вы поместили строку session_start()
перед использованием любых функций сессии, поэтому ваш код должен выглядеть примерно так:
session_start();
$_SESSION['name_here'] = $your_array;
Возможный пример:
session_start();
$_SESSION['name_here'] = $_POST;
Теперь вы можете получить значения полей на любой странице следующим образом:
echo $_SESSION['name_here']['field_name'];
Что касается второй части вашего вопроса, переменные сессии остаются там, если вы не назначите другие данные массива:
$_SESSION['name_here'] = $your_array;
Время жизни сессии устанавливается в php. ini файле.