# ReflectionMethod 类

(PHP 5, PHP 7, PHP 8)

## 简介

ReflectionMethod 类报告有关方法的信息。

## 类摘要

class ReflectionMethod extends ReflectionFunctionAbstract {
/* 常量 */
public const int IS_STATIC;
public const int IS_PUBLIC;
public const int IS_PROTECTED;
public const int IS_PRIVATE;
public const int IS_ABSTRACT;
public const int IS_FINAL;
/* 属性 */
public string $class;
/* 继承的属性 */
public string $name;
/* 方法 */
public function __construct(object|string `$objectOrMethod`, string `$method`)
public function __construct(string `$classMethod`)
public static function createFromMethodName(string `$method`): static
public static function export(string `$class`, string `$name`, bool `$return` = `false`): string
public function getClosure(?object `$object` = `null`): Closure
public function getDeclaringClass(): ReflectionClass
public function getModifiers(): int
public function getPrototype(): ReflectionMethod
public function hasPrototype(): bool
public function invoke(?object `$object`, mixed `...$args`): mixed
public function invokeArgs(?object `$object`, array `$args`): mixed
public function isAbstract(): bool
public function isConstructor(): bool
public function isDestructor(): bool
public function isFinal(): bool
public function isPrivate(): bool
public function isProtected(): bool
public function isPublic(): bool
#[\Deprecated]
public function setAccessible(bool `$accessible`): void
public function __toString(): string
/* 继承的方法 */
private function ReflectionFunctionAbstract::__clone(): void
public function ReflectionFunctionAbstract::getAttributes(?string `$name` = null, int `$flags` = 0): array
public function ReflectionFunctionAbstract::getClosureCalledClass(): ?ReflectionClass
public function ReflectionFunctionAbstract::getClosureScopeClass(): ?ReflectionClass
public function ReflectionFunctionAbstract::getClosureThis(): ?object
public function ReflectionFunctionAbstract::getClosureUsedVariables(): array
public function ReflectionFunctionAbstract::getDocComment(): string|false
public function ReflectionFunctionAbstract::getEndLine(): int|false
public function ReflectionFunctionAbstract::getExtension(): ?ReflectionExtension
public function ReflectionFunctionAbstract::getExtensionName(): string|false
public function ReflectionFunctionAbstract::getFileName(): string|false
public function ReflectionFunctionAbstract::getName(): string
public function ReflectionFunctionAbstract::getNamespaceName(): string
public function ReflectionFunctionAbstract::getNumberOfParameters(): int
public function ReflectionFunctionAbstract::getNumberOfRequiredParameters(): int
public function ReflectionFunctionAbstract::getParameters(): array
public function ReflectionFunctionAbstract::getReturnType(): ?ReflectionType
public function ReflectionFunctionAbstract::getShortName(): string
public function ReflectionFunctionAbstract::getStartLine(): int|false
public function ReflectionFunctionAbstract::getStaticVariables(): array
public function ReflectionFunctionAbstract::getTentativeReturnType(): ?ReflectionType
public function ReflectionFunctionAbstract::hasReturnType(): bool
public function ReflectionFunctionAbstract::hasTentativeReturnType(): bool
public function ReflectionFunctionAbstract::inNamespace(): bool
public function ReflectionFunctionAbstract::isClosure(): bool
public function ReflectionFunctionAbstract::isDeprecated(): bool
public function ReflectionFunctionAbstract::isGenerator(): bool
public function ReflectionFunctionAbstract::isInternal(): bool
public function ReflectionFunctionAbstract::isStatic(): bool
public function ReflectionFunctionAbstract::isUserDefined(): bool
public function ReflectionFunctionAbstract::isVariadic(): bool
public function ReflectionFunctionAbstract::returnsReference(): bool
abstract public function ReflectionFunctionAbstract::__toString(): void
}

## 属性

name

  方法名

class

  类名

## 预定义常量

## ReflectionMethod 修饰符

`ReflectionMethod::IS_STATIC` int

  表示该方法是 static。在 PHP 7.4.0 之前，值为 `1`。

`ReflectionMethod::IS_PUBLIC` int

  表示该方法是 public。在 PHP 7.4.0 之前，值为 `256`。

`ReflectionMethod::IS_PROTECTED` int

  表示该方法是 protected。在 PHP 7.4.0 之前，值为 `512`。

`ReflectionMethod::IS_PRIVATE` int

  表示该方法是 private。在 PHP 7.4.0 之前，值为 `1024`。

`ReflectionMethod::IS_ABSTRACT` int

  表示该方法是 abstract。PHP 7.4.0 之前，值为 `2`。

`ReflectionMethod::IS_FINAL` int

  表示该方法是 final。PHP 7.4.0 之前，值为 `4`。

> 注意:

> 这些常量的值可能会在不同 PHP 版本间发生更改。建议始终使用常量而不直接依赖值。

## 更新日志

版本 | 说明
--- | ---
8.4.0 | 所有类常量现已类型化。
8.0.0 | 已移除 ReflectionMethod::export()。

## 目录

- ReflectionMethod::__construct — 构造 ReflectionMethod
- ReflectionMethod::createFromMethodName — Creates a new ReflectionMethod
- ReflectionMethod::export — 导出 reflection 方法
- ReflectionMethod::getClosure — 返回动态建立的方法调用接口（译者注：可以使用这个返回值直接调用非公开方法）
- ReflectionMethod::getDeclaringClass — 获取被反射的方法所在类的反射实例
- ReflectionMethod::getModifiers — 获取方法的修饰符
- ReflectionMethod::getPrototype — 返回方法原型 (如果存在)
- ReflectionMethod::hasPrototype — Returns whether a method has a prototype
- ReflectionMethod::invoke — Invoke
- ReflectionMethod::invokeArgs — 带参数执行
- ReflectionMethod::isAbstract — 判断方法是否是抽象方法
- ReflectionMethod::isConstructor — 判断方法是否是构造方法
- ReflectionMethod::isDestructor — 判断方法是否是析构方法
- ReflectionMethod::isFinal — 判断方法是否定义 final
- ReflectionMethod::isPrivate — 判断方法是否是私有
- ReflectionMethod::isProtected — 判断方法是否是 protected
- ReflectionMethod::isPublic — 判断方法是否是 public
- ReflectionMethod::setAccessible — 设置方法是否可访问
- ReflectionMethod::__toString — 返回反射方法对象的字符串表达

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open