PHP 7 облегчает замену оператора запятой?

До сих пор я узнал, что в PHP отсутствует оператор запятой (меня не интересуют мнения, хорошо это или плохо). Так как я попадаю в схему таких выражений:

($tmp = bar(), foo($tmp), $tmp)
  1. выполнять вычисления и кэшировать вывод
  2. использовать кэшированное значение (вызвать функцию с заданным значением)
  3. вернуть кэшированное значение

Я могу заменить оператор запятой вызовом пользовательской функции, которая принимает значение и лямбду и возвращает значение.

Но мне интересно - может быть, в PHP 7 появилась новая функция, которая облегчает подстановку или позволяет заменять все формы выражений с запятыми?

1 ответ

Решение

Не совсем, но начиная с PHP 7 вы можете легко создавать и вызывать лямбда-функции одновременно, благодаря новому AST:

(function() { $tmp = bar(); foo($tmp); return $tmp; })();
Другие вопросы по тегам