查询

ReflectionClass::getMethod()函数—用法及示例

「 获取指定类中的方法的反射类实例 」


函数:ReflectionClass::getMethod()

适用版本:PHP 5+

用法: ReflectionClass::getMethod() 方法用于获取指定类中的方法的反射类实例。

语法: public ReflectionMethod ReflectionClass::getMethod ( string $name )

参数:

  • name:要获取的方法的名称。

返回值: 返回一个 ReflectionMethod 对象,该对象表示指定类中的方法。

示例:

// 定义一个类
class MyClass {
    public function myMethod() {
        echo "Hello, world!";
    }
}

// 创建 ReflectionClass 实例
$reflectionClass = new ReflectionClass('MyClass');

// 获取指定方法的反射类实例
$reflectionMethod = $reflectionClass->getMethod('myMethod');

// 输出方法的名称
echo $reflectionMethod->getName(); // 输出:myMethod

// 输出方法是否为公共方法
echo $reflectionMethod->isPublic(); // 输出:1 (表示是公共方法)

// 输出方法是否为静态方法
echo $reflectionMethod->isStatic(); // 输出:0 (表示不是静态方法)

// 调用方法
$myObject = new MyClass();
$reflectionMethod->invoke($myObject); // 输出:Hello, world!

上述示例中,我们首先创建了一个名为MyClass的类,其中包含了一个名为myMethod的公共方法。然后,我们使用ReflectionClass类创建了一个反射类实例$reflectionClass来表示MyClass类。接下来,我们使用ReflectionClass的getMethod()方法来获取myMethod方法的反射类实例$reflectionMethod。

通过$reflectionMethod对象,我们可以使用一系列的方法来获取有关该方法的信息,例如getName()方法用于获取方法的名称,isPublic()方法用于判断方法是否为公共方法,isStatic()方法用于判断方法是否为静态方法。

最后,我们通过invoke()方法调用了myMethod方法,并输出了该方法的结果。

请注意,ReflectionClass::getMethod()方法只能获取公共方法,如果想获取非公共方法,可以使用ReflectionClass::getMethods()方法获取所有方法的反射类实例,然后通过循环遍历来判断和获取指定方法。

补充纠错
热门PHP函数
分享链接