是否可以在 PHP 子函数中访问外部局部变量?
在下面的代码中,我想访问内部函数栏中的变量 $l
。在 bar 中将 $l
声明为 global $l
不起作用。
function foo()
{
$l = "xyz";
function bar()
{
echo $l;
}
bar();
}
foo();
最佳答案
你可能会使用闭包来做到这一点......
编辑: 花了一些时间来记住语法,但它看起来应该是这样的:
function foo()
{
$l = "xyz";
$bar = function () use ($l)
{
var_dump($l);
};
$bar();
}
foo();
并且,运行脚本,您将得到:
$ php temp.php
string(3) "xyz"
一些注意事项:
- 你必须在函数声明后放置一个
;
! - 您可以通过引用
使用
变量,在变量名前加上&
:use (& $l)
有关更多信息,作为引用,您可以查看手册中的此页面:Anonymous functions
关于php - 是否可以在 PHP 中访问外部局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2408908/