170 похожих чатов

Товарищи, приветствую. Столкнулся с интересной проблемой, которую не могу решить

и гугл тоже не помогает совсем.

Пытаюсь реализовать рекурсивное удаление значений из сессии, но внезапно, я не могу передать переменную $_SESSION как ссылку. Вот мой код:
public function unset(string $key): self
{
$keys = $this->parseKey($key);
$this->unsetRecursively($_SESSION, $keys);
return $this;
}

protected function unsetRecursively(&$SESS, array $keys): self
{
if (empty($keys)) {
unset($SESS);
} elseif (isset($SESS)) {
$key = array_shift($keys);
return $this->unsetRecursively($SESS[$key] ?? null, $keys);
}
return $this;
}
protected function parseKey(string $key): array
{
$key = preg_replace('/[\.\/\\\]+/', '/', $key);
$key = explode('/', $key);
return $key;
}

Ругается следующим образом:
::unsetRecursively(): Argument #1 ($SESS) cannot be passed by reference

Правильно ли я понимаю, что глобальную переменную $_SESSION нельзя передать как ссылку? Отсюда возникает вопрос: как тогда можно реализовать удобное удаление значения из сессии в многомерном массиве, сделав для этого удобную функцию?

суть в том, что ключи для массива я хочу передавать одной строкой вида array/some/keys которая парсится. Собственно для методов get() и set() такой подход очень комфортен и легко реализуется. а вот с unset() не прокатило. что делать?

3 ответов

3 просмотра

извини, проблема не интересная

Михаил-Успенский Автор вопроса
The Ant 🐜
извини, проблема не интересная

допустим, это субъективно. может тогда у тебя есть ответ по существу?

Похожие вопросы

Обсуждают сегодня

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
32
А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Дорогие любители Прекрасной Джулии! Есть кто-то имеющий практический опыт построения ML для Систем Управления? Нам нужно сделать нейросеть для автоматической подстройки пара...
Roman Timo
4
С той же поддержкой Android в тулчейне, если кому интересно. На Swift Forums шло убогое обсуждение всякой херни годами, но ничего годного так и не появлялось. Пришел vgorloff ...
iMike
1
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Приветствую ребята,у меня база есть,прорешал много задач с литкода,там деревья,списки, бэктрэкинг и все остальное,что мне сейчас делать?есть может куда устроиться поработать,е...
Aקuст Lеתסuд Aקuст Lеתסuд
5
Всех приветствую. Направьте меня в нужное русло. Постепенно переписываю проект с delphi на lazarus. Приложение - обычный windows/linux клиент для бд firebird. Тут все хорошо. ...
Mishutka
4
Anybody want this chat app? If anybody interested dm  me.. Note - Firstly payment then i send you code but i will show work on gmeet.
Rayyan Ahmad
5
Карта сайта