Я не вижу ничего плохого в этом подходе.Вы найдете эту технику под разными именами в целом ряде сред, например FlashMessenger в Zend Framework .Обычно Session оборачивается в объект вместо обычного массива Session и с ViewHelper вместо функции.
Чтобы убедиться, что у вас нет опечаток в ключах Session при назначении сообщения, вы можетеОберните присваивающий код в функцию, например,
function set_message($text, $type)
{
$_SESSION['message'] = array(
'text' => $text,
'type' => $type
);
}
. Вы могли бы улучшить ее, если бы функция возвращала строку вместо echo
ее и лично я бы использовалsprintf
для форматирования вывода.Делает код несколько более читабельным imho, например,
return sprintf('<div id="message-box" class="type-%s">%s</div>',
$_SESSION["message"]["text"],
$_SESSION["message"]["type"]);
Как указывал @Gumbo, функция может не работать, когда сеансы не работают, но это, вероятно, создаст ряд других проблем для всего приложения.поэтому я бы не стал беспокоиться об этом конкретном фрагменте кода.
Незначительная вещь: $ _SESSION - это суперглобальный , поэтому вам не нужно использовать ключевое слово global
.