Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解析变量以在PHP框架中运行_Php_Url Routing_Variable Assignment - Fatal编程技术网

解析变量以在PHP框架中运行

解析变量以在PHP框架中运行,php,url-routing,variable-assignment,Php,Url Routing,Variable Assignment,我正在考虑制作一个PHP框架,现在我大致了解了MVC的工作原理,并观看了一些制作基本MVC项目的教程 我知道地址是example.com/controller/action/arg1/arg2/arg3 现在我希望URL看起来像example.com/controller/action/arg1.arg2.arg3。 我可以将arg内爆,得到数组中的每个arg 但是,我不知道如何使用这些参数调用操作,因为您不能在调用函数的参数中放入foreach语句,因此我需要一个包含不同数量参数的操作调用的长

我正在考虑制作一个PHP框架,现在我大致了解了MVC的工作原理,并观看了一些制作基本MVC项目的教程

我知道地址是example.com/controller/action/arg1/arg2/arg3 现在我希望URL看起来像example.com/controller/action/arg1.arg2.arg3。 我可以将arg内爆,得到数组中的每个arg

但是,我不知道如何使用这些参数调用操作,因为您不能在调用函数的参数中放入foreach语句,因此我需要一个包含不同数量参数的操作调用的长列表,如

if(count($args) == 1){call($args[0]);}
if(count($args) == 2){call($args[0], $args[1]);}
if(count($args) == 3){call($args[0], $args[1], $args[2]);}
我猜有一种更干净的方法做这件事。

有。看看


究竟为什么要使用句点来分隔URL参数?只要坚持使用斜杠分隔的参数或查询字符串的用户的公认约定即可。如果使用var/u分解/users/view/1.Jack,则使用控制器操作获得一个漂亮的数组,然后使用args分解args。然后你会得到一个很好的带有args:P的数组
call_user_func_array('function_name', $args);