2011-10-28 66 views
0

我在名爲「my_function」的數據庫中存儲一個字符串。因此,要訪問這個字符串,我在場景中我打電話:在PHP中執行未知函數名稱?

$row->theFunction 

此外,我在一個培訓班裏這個功能是定義,而只能被稱爲像這樣:

$this->my_function($param1, $param2); 

現在,我的問題是,我需要執行my_function,使用它。這是行不通的:

call_user_func('$this->'.$row->theFunction, $param1, $param2); 

我在做什麼錯?

回答

4
call_user_func(array($this, $row->theFunction), $param1, $param2); 
+0

+1這是我的方式已經看到它,除了它的功能沒有功能;) –

+0

@DigitalPrecision:哦,謝謝我的手指背叛了我!現在全部修好了。 – GWW

3

是不是PHP變量好了

</sarcasm>

$this->{$row->theFunction}($param1, $param2); 

您可以實現一些健全檢查這樣

if (!method_exists($this, $row->theFunction)) { 
    throw new RuntimeException(sprintf('Invalid method "%s"', $row->theFunction)); 
} 
$this->{$row->theFunction}($param1, $param2); 
+0

Downvoter謹慎解釋?如果是上校,請不要打擾 – Phil

+0

他們也下了我的答案,也許有人只是粗魯。 – GWW