2017-09-02 77 views
0

所以,我有以下PHP代码。如何在PHP中动态使用GET?

for($i = 1; $i <= 3; $i++) { 
    ${'product' . $i . 'Id'} = ${'_GET["product' . $i . 'Id"]'}; 
} 

我希望输出与此类似。

$product1Id = $_GET["product1Id"]; 
$product2Id = $_GET["product2Id"]; 
$product3Id = $_GET["product3Id"]; 

这样我就可以在以后回复它们。

echo $product1Id; 
echo $product2Id; 
echo $product3Id; 
+0

只需使用数组作为数组....它比使用大量单个变量更容易处理....并且如果您在URL中使用它作为数组,那么它更容易。 ..像这样的编号变量名称几乎是不可避免的设计不好的标志 –

+0

@Mark Ba​​ker如果您包含一些示例代码,我将如何改进此代码而不仅仅是批评我的代码,这将会很有帮助。 – Joshua

+0

@Joshua看到这个; https://3v4l.org/ulAEV – Andreas

回答

1

就快,你for循环应该是这样的:的

for($i = 1; $i <= 3; $i++) { 
    ${'product' . $i . 'Id'} = $_GET['product' . $i . 'Id']; 
} 

或者,,而不是这个for循环,可以简单地做extract($_GET);。这将直接为您提供所需的变量和相关的值。参考:http://php.net/manual/en/function.extract.php

+0

非常感谢。我对这种类型的代码很陌生,并且你帮了我很多。 – Joshua

+0

@Joshua很高兴我能帮到你。 :-)我已经添加了一个额外的方法来达到完全相同的结果,你也可以看看这个。 –

1

试试这个。

for($i = 1; $i < 3; $i++) { 
${'product' . $i . 'Id'} = $_GET["product{$i}Id"]; 
} 
0

我希望这有助于你< 3. 对于走出这样的看跌期权($ product1Id = $ _GET [ “product1Id”])使用,你可以做一个像这样! 您可以创建一个数组,该数组的每个元素都包含您获得的某个获取值!我认为这比制作大量变量要好!尝试将你的值放在像下面的代码一样的数组中! 第一步是创建一个包含0个元素的数组。

$array_get_values = new array(); 

现在是它的时间来为它,并把它的价值。

for($i=1 ; $i =< 3;$i++) 
{ 
$array_get_values[] = $_GET["product".$i."Id"]; 
} 

,现在你必须在阵列中的所有你的价值观,你可以通过它们的地址给他们打电话。

Note : $array_get_values[] => this piece of code , adds new element to our array 

我希望我帮你了!祝你好运兄弟

+0

你不能在php中实例化数组。数组()不是一个类也不存在。 – Akintunde007

+0

你为什么要从一个数组中取值并将它们放在另一个数组中?这将如何帮助? – Andreas

+0

@Andreas他想要从get方法中保存值,并且他正在为所有Get值创建变量,如果您想创建变量manualy,则可能需要创建20个变量,因此这会使您的代码变得非常庞大并带有大量行!但是如果将它们保存到一个数组中,它会减少代码,并且当你有很多获取值时它可以帮助你!或未知的值! –

0

使用提取使数组$ _GET个别变量。

extract($_GET); 

Echo $product1Id . $product2Id . $product3Id; 

既然不能让这对我创建了一个阵列中的在线PHP测试仪“发生”就像你的GET阵列。
在此处查看演示。
https://3v4l.org/RqjRd