最近我一直面临着通过反射函数访问参数的问题,这些参数已通过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());
输出:
数组(2( { ["var"]=>string(4( "test" ["var2"]=>字符串(5( "test2" }
工作测试用例:https://3v4l.org/hDl07
参考getStaticVariables()
: http://php.net/manual/de/reflectionfunctionabstract.getstaticvariables.php