ЦЕЛЬ: Объявить / установить переменные в области действия функции, вызвавшей выполняемую функцию.
ОПИСАНИЕ:
Привет, переполнение,
Я хочу добавить еще один маленький кусочек сахара в утилиту, которую я использую во многих своих php-функциях. Это позволяет мне определить гибкий контракт на ввод моих функций. За несколько итераций я сократил его до использования, которое выглядит следующим образом:
function doSomething($param_arr){
FPX::contract(array(
'required' => array("length", "width", "height", "weight"),
'optional' => array("circumference")
));
$length = $parr['length'];
$width = $parr['width'];
$height = $parr['height'];
$weight = $parr['weight'];
$circumference = $parr['circumference'];
....
}
FPX :: contract () автоматически захватывает $ param_arr и анализирует его, чтобы убедиться, что он совместим с определенным контрактом.
Что я хотел бы сделать сейчас, так это избавить от необходимости объявлять каждую из переменных впоследствии. Есть ли способ, которым я могу, внутри самой нижней функции, объявлять переменные в области действия вызывающей ее функции? Таким образом, FPX :: contract () должен иметь возможность устанавливать переменные, входящие в сферу применения doSomething (), чтобы мне не приходилось объявлять каждую из этих переменных. (Я не хочу объявлять глобалы).
В идеале это будет выглядеть так:
function doSomething($param_arr){
FPX::contract(array(
'required' => array("length", "width", "height", "weight"),
'optional' => array("circumference")
));
....
}
И тогда doSomething () сможет получить доступ к каждой из переменных, перечисленных в контракте, как $ length, $ width и т. Д.
Мне известен синтаксис функции ($ var0, $ var1, $ var2 = null), но использовать этот синтаксис с большим количеством необязательных переменных не так просто.
Спасибо,
Кен