Kon*_*ter 5 php anonymous-function
我需要获取匿名函数参数的名称.
例如:
$func = function ( $param1, $param2 ) { ... };
$names = DO_SOMETHING($func);
// after this $names should become something like array('param1', param2')
Run Code Online (Sandbox Code Playgroud)
从理论上讲,它是可能的,因为它var_dump($func)说$func是Closure类的对象并具有parameter属性array('param1', 'param2').
php.net上的官方文档描述了Closure类的方法,它可以帮助我.
我试图直接访问这个属性,但PHP死于致命错误:Closure object cannot have properties.
我试图获得对象变量,get_object_vars但似乎parameter属性被解析为私有(无论如何,get_object_vars不会返回它).
我知道的唯一一种方法 - 截取输出var_dump并解析它,但是我们很容易理解这不是我们编写脚本的方式=)
对不起,我的英语不好.
目前无法尝试此操作,但请查看:
http://www.php.net/manual/en/class.reflectionfunction.php
特别
http://www.php.net/manual/en/reflectionfunctionabstract.getparameters.php
也许这会成功.
编辑:试试这个:
$func = function ( $param1, $param2 ) {
/* some code */
};
$refFunc = new ReflectionFunction($func);
foreach ($refFunc->getParameters() as $refParameter) {
echo $refParameter->getName(), '<br />';
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1574 次 |
| 最近记录: |