函数名称: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。