私は自分用に小さな MVC フレームワークを作成しようとしており、次のような URL 構造を使用していますhttp://www.example.com/className/methodName/var1/var2/var3
。任意の数の変数に対応できるようにしたいと考えています。
一部を除いて、必要な情報はすべて揃っています/var1/var2/var3
。現在、「/」で爆発した配列にあるので、次のようになります。var[0] = "var1",var[1] = "var2",var[2] = "var3"
呼び出されるメソッドは不明であり、各メソッドは異なる量のパラメーターを必要とする可能性があるため、パラメーターを次のように渡すことができる方法を見つけたいと思います。
$controller->$function($var1, $var2, $var3);
それよりも
$controller->$function($var);
などのカンマ区切りの変数をつなぎ合わせて、$var1, $var2, $var3
eval() を使用してやりたいことを実行できることに気付きましたが、もっと良い方法があるかどうか疑問に思っています。ユーザーが送信したデータを使用するため、これには eval() を使用したくありません。
最悪の場合、評価の前にデータをクレンジングしようとするだけだと思いますが、それでも避けたいと思います。
私が持っていたもう 1 つの潜在的なアイデアは、foreach() を使用して、メソッド呼び出し内の各要素をループすることでした。しかし、それでも私には少し面倒に思えます。
ちなみに、可変量のパラメーターを渡して配列にグループ化し、単一のパラメーターを渡す標準的な方法はありますか?
これを行うためのよりエレガントな方法を誰かが知っていれば、本当に感謝しています。