我正在使用 PHP 和ToroPHP进行路由。
未知数量的子页面
它工作得很好,但在我的情况下,我可以添加带有孩子和父母的页面,其中父母可以有未知数量的有子页面。
在 ToroPHP 中,它可能如下所示:
// My Path: http://www.test.com/product/house/room/table/leg/color/
Toro::serve(array(
"/" => "Home",
"/:string/:string/:string/:string/:string/:string/" => "Page"
));
class Page {
function get($slug, $slug2, $slug3, $slug4, $slug5, $slug6) {
echo "First slug: $slug";
}
}
问题
我可以弄清楚最大深度可以是多少,然后循环并附加一个包含“/:string”参数的字符串,但它看起来不太好。
Page-class 中的 get 函数采用未知数量的 in 参数。我可以从函数外部计算最大深度,但我需要函数知道要取多少值。
问题
- 有没有其他方法解决问题1?也许是一些正则表达式?
- 如何使函数采用未知数量的 in 参数?
- 也许我试图以错误的方式解决这个问题,前两个问题不相关?如果是这样,请纠正我。