我想爲自己創建一個小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(),因爲它將使用用戶提交的數據。
最糟糕的情況,我想我只是試圖在eval之前清理數據,但我仍然想避免它。
另一個潛在的想法是使用foreach(),並通過方法調用中的每個元素進行循環。但即使這對我來說似乎有點混亂。
在附註上,是傳遞可變數量參數的標準方法,將它們組合在一起並傳入單個參數?
如果有人知道更優雅的方式來做到這一點,我會非常感激。
同意。也值得一看PHP中的重載/魔術方法。具體來說:http://www.php.net/manual/en/language.oop5.overloading.php#object.call – ficuscr 2013-03-21 16:15:13
您是否真的閱讀過您鏈接到的手冊頁? – 2013-03-21 19:07:27
我已經解決了這個問題,(我認爲這是一個錯字)。 – 2013-03-21 19:15:45