我正在尝试为自己创建一个小的 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() ,因为它将使用用户提交的数据。
最坏的情况,我想我会在评估之前尝试清理数据,但我仍然想避免它。
我的另一个潜在想法是使用 foreach() 并遍历方法调用中的每个元素。但即使这样对我来说也有点乱。
附带说明一下,传递可变数量的参数以将它们组合在一个数组中并传入单个参数的标准方法是什么?
如果有人知道更优雅的方法来做到这一点,我将不胜感激。