如何在闭包中使用 use() 访问反射函数中的参数

  • 本文关键字:反射 访问 函数 参数 use 闭包 php
  • 更新时间 :
  • 英文 :


最近我一直面临着通过反射函数访问参数的问题,这些参数已通过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

最新更新