ReflectionClass
在线手册:中文 英文
PHP手册

ReflectionClass::getMethods

(PHP 5)

ReflectionClass::getMethodsGets a list of methods

说明

public array ReflectionClass::getMethods ([ string $filter ] )

Gets a list of methods.

Warning

本函数还未编写文档,仅有参数列表。

参数

filter

Any combination of ReflectionMethod::IS_STATIC, ReflectionMethod::IS_PUBLIC, ReflectionMethod::IS_PROTECTED, ReflectionMethod::IS_PRIVATE, ReflectionMethod::IS_ABSTRACT, ReflectionMethod::IS_FINAL.

返回值

An array of methods.

参见


ReflectionClass
在线手册:中文 英文
PHP手册
PHP手册 - N: Gets a list of methods

用户评论:

erik at dubbelboer dot com (29-Mar-2012 01:21)

The $filter uses an OR to filter the methods.

So php ReflectionMethod::IS_STATIC | ReflectionMethod::IS_PUBLIC will return all methods which are static or public methods, NOT only the methods which are both static and private.

deminy at deminy dot net (22-Jun-2011 05:24)

Method ReflectionClass::getMethods doesn't work constantly across different versions of PHP. For following code piece

<?php
class Dummy implements Iterator
{
    public function
current () {}
    public function
next () {}
    public function
key () {}
    public function
valid () {}
    public function
rewind () {}
}

$reflection = new ReflectionClass('Dummy');
$aMethods = $reflection->getMethods();
echo
'# of methods: ', count($aMethods), "\n";
?>

, it outputs "# of methods: 10" on PHP 5.2.14 and PHP 5.2.17, including all methods defined in the class itself and in the interface no matter if a method has been implemented or overridden; however, it returns "# of methods: 5" on PHP 5.3.5. Based on some other tests did by my colleagues, I assume it also returns "# of methods: 5" on PHP 5.2.10 and PHP 5.3.6.

calibhaan at gmail dot com (11-May-2010 05:57)

This method return an array of ReflectionMethod;
For example:

<?php
$reflection
= new ReflectionClass('Test');
$aMethods = $reflection->getMethods();
var_dump($aMethods);
?>

Display:
array(2) {
 [0]=> &object(ReflectionMethod)#7 (2) {
  ["name"]=> string(11) "__construct"
  ["class"]=> string(9) "Test" }
 [1]=> &object(ReflectionMethod)#8 (2) {
  ["name"]=> string(3) "run"
  ["class"]=> string(9) "Test" }
}