2014-06-13 87 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