2013-02-23 39 views
2

我正在为我的CMS的插件系统工作,以使事件注册系统变得轻松我需要一个可以执行以下操作的函数。从一个类中获取所有函数及其参数

我需要一个函数,它将返回指定类中的所有函数及其参数的类。当然,如果从一个类中获得函数的函数和获取函数参数的所有类名的函数是不同的,那就好了。

例如,如果您有以下类与这些功能;

class MyClass { 
    public function myFunction(Event $event) { 
     // Function code 
    } 
} 

如果可以返回这样的东西,这将是非常棒的;

Array() { 
    'myFunction' => Array() { 
     0 => 'Event' 
    } 
} 

有没有办法做到这一点?

由于提前, 添VISEE

+0

nope。不标准。可能是一个插件/类,会增加一些功能,但没有任何开箱即用。最接近的将是'get_defined_functions'和'get_declared_classes',但这不会做你所问的。 – 2013-02-23 21:00:35

+0

http://www.php.net/manual/en/function.call-user-func-array.php? – Winston 2013-02-23 21:04:23

+0

正如@DiegoAgulló回答的那样,您可以使用Reflection API,这正是我需要的东西,这是内置于PHP 5+,我的CMS需要PHP 5.3.1才能运行,所以是的,这些功能似乎是可行的:) – 2013-02-23 22:27:49

回答

5

你究竟指的是Reflection API。反映classesmethods可能会导致你做你需要的。例如,尝试:

$class = new ReflectionClass('MyClass'); 
$methods = $class->getMethods(); 

print_r($methods); 

foreach ($methods as $method) { 
    print_r($method->getParameters()); 
} 
+0

这看起来不错,我现在就试试吧!感谢您的快速响应顺便说一句。 – 2013-02-23 22:13:00

+0

这个功能非常完美,非常感谢! :) 将您的答案标记为答案。 – 2013-02-23 22:24:35

+1

我很高兴能帮上忙! :) – 2013-02-23 22:29:29

相关问题