Я работаю над простым диспетчером сеансов для своей структуры. Я пытаюсь настроить более удобную для пользователя структуру данных сеанса. По существу моих сессий сохраняются так:Установите многомерный массив через функциональные параметры
$app_name = "Some_App_Name";
$component = "notifications";
$key = "errors";
$value = "There was some error";
$_SESSION[$app_name][$component][$key] = $value;
Проблемы я столкнулся создаю эту структуру через параметры в классе сессии. У меня есть метод набора, который должен идеально устанавливать значение сеанса. $ App_name, как указано выше, по умолчанию добавляется в класс сеанса через конструктор, но мне нужно найти простой способ передать параметры, переданные внутри метода, а затем создать остальные. Простой пример:
// Where keys could be: $key1 = notifications, $key2 => "notices"
public static function set($key1,$key2,$value) {
$_SESSION[self::$app_name][$key1][$key2] = $value;
}
Вышеуказанное будет работать, если у меня всегда есть 4 параметра, но в некоторых случаях у меня может быть только 2 параметра. Я мог бы передать 2 параметра (оба являются массивами), но я ищу более оптимизированный подход (если такой подход существует).
С Создание структуры и установки значений я также нужен похож способ проверки, если значение или последний ключ существует:
// Where keys could be: $key1 = notifications, $key2 => "errors"
public static function exists($key1,$key2) {
if(isset($_SESSION[self::$app_name][$key1][$key2])) {
return true;
}
Любые предложения очень будут оценены.
Проблема в том, что я не всегда уверен, сколько параметров может быть. Я хочу создать функцию для использования всех переданных параметров (может быть что угодно от 1 до 1000 ха-ха) и создать структуру и принять последний параметр в качестве значения. – mauzilla