PHPで次のことができますか?変数でメソッドを呼び出すことはできますか?
$lstrClassName = 'Class';
$lstrMethodName = 'function';
$laParameters = array('foo' => 1, 'bar' => 2);
$this->$lstrClassName->$lstrMethodName($laParameters);
私が今使っているソリューションは、そのようにeval()関数で関数を呼び出すことである:
eval('$this->'.$lstrClassName.'->'.$lstrMethodName.'($laParameters);');
これを解決するbeter方法がある場合、私は好奇心が強いです。
ありがとうございます!
通常、あなたはこれに頼らなければならないときに何か間違っています。あなたは何を達成しようとしていますか? – NullUserException
実際には、同じクラスの異なるメソッドを呼び出すのではなく、同じメソッド名を持つ異なるクラスにオブジェクトを再編成してください。メソッド名ではなく、オブジェクトを渡すことができます。 – rjmunro
'eval()'は良い方法ではないことを認識しています。あなたはなぜあなたがそれを使うのか正確に分からない限り、文字列 'eval()'を使うことはほとんどありません。*あなたはもっと良い選択肢を除外しました。しかし、あまりにも多くのより良い選択肢があるので...おそらく、あなたはおそらく文字列 'eval()'を使うべきではありません。 – dreftymac