GOAL: Declare/set variables in the scope of the function that called the running function.
DETAILS:
Hey Overflowans,
I m looking to add one last little piece of sugar to a utility that I use in a lot of my php functions. It allows me to define a flexible contract on the input of my functions. Over a few iterations, I ve gotten it pared down to a usage that looks like this:
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() automatically grabs the $param_arr and parses it to make sure that it s compatible with the defined contract.
What I would like to do now is eliminate the need to declare each of the variables afterwards. Is there a way that I can, within the lowest function, declare variables in the scope of the function that called it? So FPX::contract() needs to be able to set variables that are in the scope of doSomething() so that I don t have to declare each of these variables. (I don t want to declare globals).
Ideally it would just look like:
function doSomething($param_arr){ FPX::contract(array( required => array("length", "width", "height", "weight"), optional => array("circumference") )); .... }
And then doSomething() would be able to access each of the variables listed in the contract as $length, $width, etc.
I m aware of the function($var0, $var1, $var2=null) syntax, but it s not very easy to use this syntax with a large number of optional variables.
Thanks, Ken