2

私は(学習用の)独自のフレームワークを作成しており、パラメーターをメソッドに渡したい段階にあります。現時点では、次の方法でこれを達成しています。

$params = array_slice($url, 1);
$class->{$method[1]}($params);

次に、私が持っているクラスのメソッドで$params = func_get_arg(0); これは機能しますが、理想的ではありません。Codeigniterでは次のように呼び出すことができます。

http://domain.com/controller/method/p1/p2/p3..。

次に、これらを介して取得する方法で

method($p1, $p2, $p3){}

これが私が好むものです。これをどのように設定しますか?

ps:私のクラスはすべて基本クラスを拡張します

4

3 に答える 3

1

ボンネットの下で、私はCIcall_user_func_array()がこれを行うために使用することに賭けています:

call_user_func_array( array( $class, $method[1]), $params);

これで、配列内のパラメーターの数に応じて、次のようなメソッドを使用できます。

method($p1, $p2, $p3){}

$params配列に3つのパラメーターがあると仮定します。

于 2012-07-18T21:23:50.693 に答える
0

これを試してください:

call_user_func_array( array( $class, $method ), $params );
于 2012-07-18T21:23:37.870 に答える
0

すべてのパラメーターを1つずつ渡すのではなく、すべてのパラメーターを含む配列を渡そうとしましたか?

于 2012-07-18T21:24:54.263 に答える