最近,我一直面临通过ReflectionFunction访问参数的问题,这些参数已通过use()
构造传递给闭包。
示例:
$var = 'test';
$var2 = 'test2';
$func = function()use($var,$var2) {
echo $var;
};
$ref = new ReflectionFunction($func);
// Access the parameters here
我将如何继续解决这个问题?
答案 0 :(得分:2)
可以通过访问$ref->getStaticVariables()
来解决。
示例:
<?php
$var = 'test';
$var2 = 'test2';
$func = function()use($var,$var2) {
echo $var;
};
$ref = new ReflectionFunction($func);
var_dump($ref->getStaticVariables());
输出:
array(2){ [ “变种”] =&GT; string(4)“test” [ “VAR2”] =&GT; string(5)“test2” }
工作测试用例:https://3v4l.org/hDl07
参考getStaticVariables()
:http://php.net/manual/de/reflectionfunctionabstract.getstaticvariables.php