Попытка изменить функцию флэш-сообщения, но она не работает вообще. Является ли $_SESSION[$type][$name]
и т. Д. Форматом неприемлемым?Функция флеш-сообщений с массивами не работает
function flash($type = '', $name = '', $message = '', $class = '', $dismiss = '')
{
//We can only do something if name exists
if($name)
{
//No message, create it
if($message && empty($_SESSION[$type][$name]))
{
$_SESSION[$type][$name] = $message;
$_SESSION[$type][$name][$class] = $class;
$_SESSION[$type][$name][$dismiss] = $dismiss;
}
//Message exists, display it
else if($_SESSION[$type][$name] && empty($message))
{
echo '<div class="'.$_SESSION[$type][$name][$class].'">'.$_SESSION[$type][$name].' '.$_SESSION[$type][$name][$dismiss].'</div>';
unset($_SESSION[$type]);
}
}
}
Использование будет:
// set a message
<?php flash('error', 'test', 'whats up?', 'info', 'TRUE'); ?>
// display a message
<?php flash('test'); ?>
$ _SESSION [$ type] [$ name] [$ message] = $ message; ничего не меняет ... по какой-то причине массив не создается. Приходящие значения - это то, что я пытаюсь добавить в массив, а затем для вывода их на экран. Имеет смысл хранить их как массив, но я не могу заставить его работать как есть. – user756659
Вы не можете использовать '$ _SESSION [$ type] [$ name] [$ message]', как в вашем 'Message exists ...' pass, вы не знаете, что такое '$ message' - вот почему я установите его на жестко закодированное значение (я выбрал «messagetext», поскольку я предположил, что он вряд ли столкнется с '$ class' или' $ увольнением'). – danielpsc
Также я только что заметил ваше изменение «Использование» - вам нужно передать '$ type' и' $ name' ко второму вызову, иначе проверка '$ _SESSION [$ type] [$ name]' будет всегда потерпеть неудачу. – danielpsc