/
获取一个函数的依赖
@param string|callable $func
@param array $param 调用方法时所需参数 形参名就是key值
@return array 返回方法调用所需依赖
/
function getFucntionParameter($func,$param=[]) {
if(!is_array($param)) {
$param = [$param];
}
$ReflectionFunc = new \ReflectionFunction($func);
$depend = array();
foreach($ReflectionFunc->getParameters() as $value) {
if(isset($param[$value->name])) {
$depend[] = $param[$value->name];
}elseif($value->isDefaultValueAvailable()){
$depend[] = $value->getDefaultValue();
}else{
$tmp = $value->getClass();
if(is_null($tmp)) {
throw new \Exception("Function parameters can not be getClass {$class}");
}
$depend[] = $this->get($tmp->getName());
}
}
return $depend;
}
function test($a,$b=20) {
echo $a,',',$b;
}
$depend = getFucntionParameter('test',['a'=>30,'b'=>40]);
call_user_func_array('test',$depend); // 30,40
上面的函数是我开发的框架的容器的方法。
php提供了很完整的反射机制。不但可以反射函数,还可以反射方法,反射类构造函数。
按地址引用参数就可以改变传进去的参数的值了。
如下列所示代码:
m和n就被函数addtest改变为3和4了。
Public Function addtest(ByRef a As Integer, ByRef b As Integer)
a = 3
b = 4
addtest = 5
End Function
Sub aa()
Dim m As Integer
Dim n As Integer
addtest m, n
MsgBox m
MsgBox n
End Sub
以上就是关于php有没有什么函数可以获取一个方法中的参数名和参数类型的全部的内容,包括:php有没有什么函数可以获取一个方法中的参数名和参数类型的、在VBA中调用函数时,怎么实现返回多个参数、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)