php - 如何访问在闭包中使用 use() 传递的 ReflectionFunction 中的参数

标签 php

最近,我一直面临通过 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/

相关文章:

php - 发出硬 sql 请求以查找图片的喜欢计数

php - 如何从wordpress数据库的元值中获取数据

php - 如何将值从一种形式获取到另一种形式

php - 将表单字段插入数据库

php - MySql 更新并将 null 设置为具有其他表外键的字段

php - 如何将 JavaScript 变量传递给 JQuery

php - 将 UTF-8 数据放入 latin1 数据库列时会发生什么?

php - 从中选择最大值(选择查询)

php - 有没有适用于任何 Linux 操作系统版本的 php-pgsql 软件包?

php - 不了解 php 命名空间,如何从另一个类调用函数?