Is it possible to access outer local varialbe in a PHP sub-function?
In below code, I want to access variable $l in inner function bar. Declaring $l as global $l in bar doesn’t work.
function foo()
{
$l = "xyz";
function bar()
{
echo $l;
}
bar();
}
foo();
Advertisement
Answer
You could probably use a Closure, to do just that…
Edit : took some time to remember the syntax, but here’s what it would look like :
function foo()
{
$l = "xyz";
$bar = function () use ($l)
{
var_dump($l);
};
$bar();
}
foo();
And, running the script, you’d get :
$ php temp.php string(3) "xyz"
A couple of note :
- You must put a
;after the function’s declaration ! - You could
usethe variable by reference, with a&before it’s name :use (& $l)
For more informations, as a reference, you can take a look at this page in the manual : Anonymous functions