php有没有什么函数可以获取一个方法中的参数名和参数类型的

php有没有什么函数可以获取一个方法中的参数名和参数类型的,第1张

/

  获取一个函数的依赖

  @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中调用函数时,怎么实现返回多个参数、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9672423.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存