ReflectionClass::getMethod

(PHP 5、PHP 7、PHP 8)

ReflectionClass::getMethod获取类方法的 ReflectionMethod

描述

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

获取类方法的 ReflectionMethod

参数

name

要反射的方法名。

返回值

一个 ReflectionMethod

错误/异常

如果方法不存在,则抛出 ReflectionException

示例

示例 #1 ReflectionClass::getMethod() 的基本用法

<?php
$class
= new ReflectionClass('ReflectionClass');
$method = $class->getMethod('getMethod');
var_dump($method);
?>

上面的示例将输出

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(9) "getMethod"
  ["class"]=>
  string(15) "ReflectionClass"
}

参见

添加注释

用户贡献的注释 2 个注释

Jarrod Nettles
13 年前
如果你需要获取方法中参数的类型提示,请使用此代码。

<?php

// 目标类
$reflector = new ReflectionClass('MyClass');

// 获取方法的参数
$parameters = $reflector->getMethod('FireCannon')->getParameters();

// 循环遍历每个参数并获取类型
foreach($parameters as $param)
{
// 在调用 getClass() 之前,必须定义该类!
echo $param->getClass()->name;
}

?>
sagittaracc at gmail dot com
2 年前
如果你需要获取方法体,请使用此扩展 (https://github.com/sagittaracc/reflection)

namespace sagittaracc\classes;

class Test
{
public function method()
{
if (true) {
return 'this method';
}

return 'never goes here';
}
}

$reflection = new ReflectionClass(Test::class);
$method = $reflection->getMethod('method');
echo $method->body; // if (true) { return 'this method'; } return 'never goes here';
To Top