2014-06-13 55 views
-1

我需要创建一个对象形成一个带参数的类。然后我再次需要反射来调用一个方法。再次参数。这是如何在PHP中完成的?使用反射创建新对象和调用方法

class X { 
    public function __construct(Y y) { ... } 
    public function aMethod(Z z) { ...} 
} 

我需要做这样的事情:

$instance = ...(new "X", new Y()); // as in 'class', 'args array' 
$instance->invokeMethod("aMethod", new Z()); 

我看了手册,但无法找到该工程尚未解决。

+0

没有倒下你,但请更详细地解释你的问题。你为什么需要使用反射? – Steve

+0

我需要反思,因为我写了一个webframework路由器,它接受它必须从文本文件调用的类。控制器类本身有一堆构造器参数。然后我需要调用一个方法,也取自配置文件并调用它。除此之外,我认为这是一个相当规范的问题。没有太多的模糊... – raoulsson

+0

反思缓慢,我会重构 - 使用工厂模式来处理依赖注入 – Steve

回答

1
$class = 'MyClass'; 

$obj = new $class(..); 

$method = 'stuff'; 

$obj->$method(...); 

这将构造一个MyClass的实例并调用其上的方法(..)。简单。

+0

这很容易。谢谢。 – raoulsson