最近,我一直面临通过 ReflectionFunction 访问参数的问题,这些参数已通过 use()
构造传递给闭包。
例子:
$var = 'test';
$var2 = 'test2';
$func = function()use($var,$var2) {
echo $var;
};
$ref = new ReflectionFunction($func);
// Access the parameters here
我将如何继续解决这个问题?
最佳答案
可以通过访问$ref->getStaticVariables()
来解决。
示例:
<?php
$var = 'test';
$var2 = 'test2';
$func = function()use($var,$var2) {
echo $var;
};
$ref = new ReflectionFunction($func);
var_dump($ref->getStaticVariables());
输出:
array(2) { ["var"]=> string(4) "test" ["var2"]=> string(5) "test2" }
工作测试用例:https://3v4l.org/hDl07
引用getStaticVariables()
:http://php.net/manual/de/reflectionfunctionabstract.getstaticvariables.php
关于php - 如何访问在闭包中使用 use() 传递的 ReflectionFunction 中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44887737/