用PHP动态创建变量

用PHP动态创建变量,php,api,rest,loops,for-loop,Php,Api,Rest,Loops,For Loop,我正在开发一个REST样式的API,我希望能够将URL分解为各个变量 假设我有以下URL:www.example.com/user/post/1 我想做以下变量: $uri_1 = user $uri_2 = post $uri_3 = 1 我试着这样做,但它陷入了一个循环 $path = explode('/', $this->path($uri)); for($i=0;$i < count($path);$i++){ $uri_.$i = $path[i];

我正在开发一个REST样式的API,我希望能够将URL分解为各个变量

假设我有以下URL:www.example.com/user/post/1

我想做以下变量:

$uri_1 = user
$uri_2 = post
$uri_3 = 1
我试着这样做,但它陷入了一个循环

 $path = explode('/', $this->path($uri));
 for($i=0;$i < count($path);$i++){
       $uri_.$i = $path[i];
 }
$path=explode('/',$this->path($uri));
对于($i=0;$i
以下是如何使用PHP的变量功能对任意数量的变量执行此操作:

 $path = explode('/', $this->path($uri));
 for($i=0;$i < count($path);$i++){
       ${"uri_".$i} = $path[i];
 }
$path=explode('/',$this->path($uri));
对于($i=0;$i
以下是如何使用PHP的变量功能对任意数量的变量执行此操作:

 $path = explode('/', $this->path($uri));
 for($i=0;$i < count($path);$i++){
       ${"uri_".$i} = $path[i];
 }
$path=explode('/',$this->path($uri));
对于($i=0;$i
工作正常。我想避免使用一堆if语句,所以这也是简短的。Thanks@R.S.我理解。我只需要将URL分为单独的组件。API将负责过滤输入。@R.S-Duh!它与返回路径名的
$\u服务器['REQUEST\u URI']
一起工作。将其与包含域名的url一起使用,并尝试用这样的字符串替换
$\u服务器
变量,将无法工作,就像
http://www.google.com/i/didnt/getit/
。只要它使用
$\u SERVER
变量中的实际URL,并且您不尝试用字符串替换它,它就可以正常工作!如果浏览器地址栏中的url为example.com/user/post/1/?q=1$_服务器['REQUEST_URI']将返回'user/post/1/?q=1'您是对的,上面的示例可以工作。。。但是,如果url更改为example.com/user/post/?q=1。我想避免使用一堆if语句,所以这也是简短的。Thanks@R.S.我理解。我只需要将URL分为单独的组件。API将负责过滤输入。@R.S-Duh!它与返回路径名的
$\u服务器['REQUEST\u URI']
一起工作。将其与包含域名的url一起使用,并尝试用这样的字符串替换
$\u服务器
变量,将无法工作,就像
http://www.google.com/i/didnt/getit/
。只要它使用
$\u SERVER
变量中的实际URL,并且您不尝试用字符串替换它,它就可以正常工作!如果浏览器地址栏中的url为example.com/user/post/1/?q=1$_服务器['REQUEST_URI']将返回'user/post/1/?q=1'您是对的,上面的示例可以工作。。。但是如果url更改为example.com/user/post/?q=1..n$uri_3=?q=1为什么需要单独的变量,为什么不使用
explode
?@Barmar返回的数组呢?这在我的API中。这是设计的一部分。为什么需要单独的变量,为什么不直接使用
explode
返回的数组?@Barmar这在我的API中。这是设计的一部分。巴玛,这正是我想要的。我已经接受了阿达尼奥的答案,因为它有效而且简单,但这正是我想要实现的。谢谢,巴玛,这正是我想要的。我已经接受了阿达尼奥的答案,因为它有效而且简单,但这正是我想要实现的。非常感谢。