Arris
@Arris
Сапиенсы учатся, играя.

PHP + with (JS-style) — как сделать изящно?

Как известно, в JS существует конструкция with (ныне помеченная как устаревшая). Она позволяет использовать в качестве области видимости для переменных произвольный объект.

Совершенно быдлокодерский пример:
with(element.style) {
    position = 'relative'
    top = left = '5px'
}


Я задался вопросом, как сделать подобное в PHP? Дело в том, что приходится обрабатывать огромный многомерный массив, приходящий из "черного ящика" и писать постоянно

$template['part1']['value1'] = convertDate( $template['part1']['value1']);
$template['part1']['value2'] = convertPrice( $template['part1']['value2']);
...
$template['part1']['XXX']['valueN'] = convertFooToBar( $template['part1']['XXX']['valueN']);

утомляет неимоверно.

Хочется чего-нибудь более изящного (как это было бы в ЯП моей мечты) :
$template['part1'] = use ($template['part1'] as $part) {
   $part['v1'] = doSomething( $part['v1']);
}

Или какой-нибудь подобный сахар.

Как сделать подобное в PHP?

P.S. У меня есть решение, но мне оно кажется неизящным. Нужна помощь обсчественности.
P.P.S. И, да, хотелось бы обойтись без классов и чтобы код работал в PHP7 ;)
  • Вопрос задан
  • 237 просмотров
Решения вопроса 1
Дык есть замыкания же.
$template['part1'] = (function ($part) {
   $part['v1'] = doSomething( $part['v1']);
   return $part;
})($template['part1']);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
27 апр. 2024, в 13:49
300000 руб./за проект
27 апр. 2024, в 13:30
30000 руб./за проект
27 апр. 2024, в 13:22
600 руб./за проект