Как обернуть функцию extract в PHP?

$arr = ['foo'=>'bar'];
my_extract($arr);
echo $foo; // bar

function my_extract($arr) {
    extract($arr); // не сработает
}

В общем то функцию extract использовать не обязательно. Возможно есть другие способы решить задачу (без использования global, т.к. переменные нужны в той области видимости где вызывается функция).
  • Вопрос задан
  • 2610 просмотров
Пригласить эксперта
Ответы на вопрос 4
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
зачем?

Естественно не сработает
Область видимости переменной
Ответ написан
nazarpc
@nazarpc
Open Source enthusiast
extract — Import variables into the current symbol table from an array

То есть работает с той областью видимости, в которой объявлена, и повлиять на другую область видимости не получится никак.

А зачем вам? В вопросе не понятно совершенно ничего, цель же у вас не извлечь элементы массива как переменные, иначе бы вы напрямую extract() использовали. Видать, ещё чего-то намудрили, делитесь теперь, может, придумаем альтернативу.
Ответ написан
Комментировать
@SilverSlice
Непонятно, какая конкретно задача стоит перед вами? Написать такую функцию из интереса? Можете написать расширение и реализовать свою логику на основе существующей.
Ответ написан
kompi
@kompi
nullstack devoops
Делайте класс с правилами разбора запросов. Потом с помощью магии, если так хочется красоты, можно будет обращаться, например, так: $a->request->userId, $a->request->pageNo и т.д.
PS Посмотрите, как парсят запросы в популярных фреймворках.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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