В PHP можно написать
$ а = "$ B $ с";
Это элегантно объединяет предполагаемые строки в $ b и $ c в $ a (то есть, используя минимальный, но понятный синтаксис).
Теперь я хочу переместить это утверждение в функцию. Проблема в том, что $ b и $ c естественно интерпретируются как локальные для этой функции, а не ее вызывающего (который может быть глобальным кодом или функцией). Даже если вызывающая сторона определяет $ b и $ c, эта новая функция не может видеть эти определения.
Я хочу сделать что-то умное, требующее, чтобы оператор работал так же (за исключением расположения $ a), даже если он был перемещен в функцию.
Кроме того, я хочу, чтобы это было эффективно. Не использовать extract () или debug_backtrace (). Просто хочу использовать локальную область звонящего. Я не против, если я использую Zend, чтобы получить таблицу символов звонящего, или любой другой взлом, если это эффективно.
Не волнуйтесь, я не собираюсь использовать это в качестве общей практики программирования (тьфу), только для одной конкретной и замечательной цели.