提问人:Samik Sengupta 提问时间:12/26/2018 更新时间:12/26/2018 访问量:50
PHP 从自身内部引用数组,在 Closure 成员中
PHP Referencing array from within itself inside a Closure member
问:
我有一个带有 Closure 成员的数组,它在执行过程中的特定时刻被调用,并使用数组自己的成员执行操作。
$a = [];
$a['const'] = 5;
$a['closure'] = function() {
return ($a['const'] * 2);
};
print_r($a['closure']());
这给了
NOTICE Undefined variable: a on line number 6
0
我不确定为什么不起作用,因为我已经将其定义为定义 Closure 成员的行之前的单独语句。似乎我无法从我所知道的数组内部引用该数组。$a
能做到吗?
答:
2赞
Yogendrasinh
12/26/2018
#1
希望下面的代码对您有所帮助。
<?php
$a = [];
$a['const'] = 5;
$a['closure'] = function($a) {
return ($a['const'] * 2);
};
print_r($a['closure']($a));
4赞
Maksym Fedorov
12/26/2018
#2
您的代码不起作用,因为您没有在匿名函数中传递变量。您可以在从父作用域继承变量的帮助下将变量传递到函数中(使用构造)。例如:$a
$a
use
$a = [];
$a['const'] = 5;
$a['closure'] = function() use ($a){
return ($a['const'] * 2);
};
print_r($a['closure']());
评论
$a