English | 简体中文 | 繁體中文
查询

ReflectionMethod::createFromMethodName()函数—用法及示例

「 创建一个ReflectionMethod对象,通过指定类名和方法名来获取方法的反射信息 」


函数名称:ReflectionMethod::createFromMethodName() 

适用版本:PHP 8.0.0 及以上版本

用法: ReflectionMethod::createFromMethodName(string $className, string $methodName): ReflectionMethod|false

该静态方法用于创建一个ReflectionMethod对象,通过指定类名和方法名来获取方法的反射信息。

参数:

  • $className:要获取方法信息的类名。
  • $methodName:要获取信息的方法名。

返回值:

  • 如果成功创建ReflectionMethod对象,则返回该对象。
  • 如果未找到指定的类或方法,则返回false。

示例:

class MyClass {
    public function myMethod() {
        // Some code here
    }
}

// 创建ReflectionMethod对象
$reflectionMethod = ReflectionMethod::createFromMethodName('MyClass', 'myMethod');

// 检查是否成功创建ReflectionMethod对象
if ($reflectionMethod !== false) {
    // 获取方法名称
    echo 'Method name: ' . $reflectionMethod->getName() . PHP_EOL;
    
    // 检查方法是否为公共方法
    echo 'Is public method: ' . ($reflectionMethod->isPublic() ? 'Yes' : 'No') . PHP_EOL;
    
    // 检查方法是否为静态方法
    echo 'Is static method: ' . ($reflectionMethod->isStatic() ? 'Yes' : 'No') . PHP_EOL;
    
    // 获取方法的参数列表
    $parameters = $reflectionMethod->getParameters();
    echo 'Parameters: ' . PHP_EOL;
    foreach ($parameters as $parameter) {
        echo '- ' . $parameter->getName() . PHP_EOL;
    }
} else {
    echo 'Failed to create ReflectionMethod object.' . PHP_EOL;
}

以上示例将输出:

Method name: myMethod
Is public method: Yes
Is static method: No
Parameters:

注意:ReflectionMethod::createFromMethodName()方法仅适用于PHP 8.0.0及以上版本。如果在低于该版本的PHP环境中使用该方法,将会抛出一个Fatal Error。

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