我想为自己创建一个小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