用PHP动态创建变量
我正在开发一个REST样式的API,我希望能够将URL分解为各个变量 假设我有以下URL:www.example.com/user/post/1 我想做以下变量:用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];
$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中。这是设计的一部分。巴玛,这正是我想要的。我已经接受了阿达尼奥的答案,因为它有效而且简单,但这正是我想要实现的。谢谢,巴玛,这正是我想要的。我已经接受了阿达尼奥的答案,因为它有效而且简单,但这正是我想要实现的。非常感谢。