为了账号安全,请及时绑定邮箱和手机立即绑定

php匿名函数变量作用域问题

php匿名函数变量作用域问题

PHP
偶然的你 2019-03-13 19:26:19
如图,如何更优雅地访问匿名函数外的$data?
查看完整描述

3 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

function() use($data){}
更优雅一些,但需要注意的是继承过来的$data值与这个闭包声明的上下文有关
例如:

[1]
$data = 1;
function() use($data){}//此时继承的变量值为1
[2]
$data = 1;
function() use($data){}
$data = 2;
此时再调用闭包函数,$data的取值为其声明时的上下文的值,值为1
$data = 1;
$x = function() use ($data){
    var_dump($data);
    exit;
};
$data = 2;
function ttt($a)
{
    $a();
}
ttt($x);
查看完整回答
反对 回复 2019-03-18
?
青春有我

TA贡献1784条经验 获得超8个赞

从父作用域中继承变量 用use

function()use($data){}
查看完整回答
反对 回复 2019-03-18
?
www说

TA贡献1775条经验 获得超8个赞

补充一下,global和$GLOBALS超全局变量也可以读到外部定义的全局变量,了解一下

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 371 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信