Я создаю сайт на Drupal 8. В функции предварительной обработки модуля я пытаюсь проверить, завершается ли переменная $_SESSION
при загрузке страницы, что-то сделать с этой переменной, а затем сбросить переменную. Вот упрощенная версия кода:
function geolocation_filter_preprocess_page() {
if (isset($_SESSION['blocked_submission'])) {
$messageText = $_SESSION['blocked_submission']['text'];
$messageType = $_SESSION['blocked_submission']['type'];
echo $messageText . $messageType;
unset($_SESSION['blocked_submission']);
}
}
Если я удаляю вызов функции unset
, текст печатается, как и ожидалось.
Переменная не может быть сброшена, если тольковыполнение кода попадает в блок if
, но тогда эхо не происходит, как если бы оно не попадало в блок if
. Я думал, что PHP выполняется линейно, поэтому я ожидал, что произойдет эхо-выражение, и тогда переменная $_SESSION
будет не установлена. Чего мне не хватает?