2011-10-28 12 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のようにチェックするいくつかの正気を実装することができますPHPの変数だけ素晴らしい

</sarcasm>

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

ないですそれを見た、それ以外の機能はfuncitonではない;) –

+0

@DigitalPrecision:ああ、私の指が私を裏切ってくれてありがとう!すべて確定しました。 – GWW

3

は、あなたがこれは私が「方法です。この

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

関連する問題