略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: ReflectionClass::getMethod

2024-11-15

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"
}

参见

add a noteadd a note

User Contributed Notes 2 notes

up
5
Jarrod Nettles
11 years ago
If you ever need to get the type hint of a parameter in a method use this.

<?php

//Target our class
$reflector = new ReflectionClass('MyClass');

//Get the parameters of a method
$parameters = $reflector->getMethod('FireCannon')->getParameters();

//Loop through each parameter and get the type
foreach($parameters as $param)
{
    
//Before you call getClass() that class must be defined!
    
echo $param->getClass()->name;
}

?>
up
0
sagittaracc at gmail dot com
8 months ago
if you ever need to get the body of a method, use this extension (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';

官方地址:https://www.php.net/manual/en/reflectionclass.getmethod.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3