2017-09-02 5 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"]; 

私は後でそれらをエコーすることができます。代わりに、あなたは、単にextract($_GET);を行うことができ、このforループの

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

または、

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

配列を配列として使用するだけです...個々の変数のホストよりも扱いやすくなります。また、URLの配列として使用するともっと簡単です。 ..このような番号のついた変数名は、ほとんど必然的に悪い設計の兆候です。 –

+0

@マーク・ベイカー私のコードを批判するのではなく、これをどのように改善するかというサンプルコードを含めると役に立ちます。 – Joshua

+0

@Joshuaこれを見てください; https://3v4l.org/ulAEV – Andreas

答えて

1

あなたはほとんどそこにいる、あなたのforループは次のようにする必要があります。これにより、必要な変数と関連する値が直接得られます。参考:http://php.net/manual/en/function.extract.php

+0

ありがとうございました。私はこのタイプのコードを初めて使い、あなたは私を多く助けました。 – Joshua

+0

@Joshua Glad私は助けることができました。 :-)私はまったく同じ結果を得るために追加の方法を追加しました。また、同様にそれを見たいかもしれません。 –

1

これを試してください。

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

私はこれは、あなたがこのようなのために作ることができ、ために使用して、このようなプット($ product1Id = $ _GET [ "product1Idを"])を取得するためのあなた< 3. に役立ちます願っています! 配列の各要素に取得するget値の1つが含まれている配列を作ることができます!これはたくさんの変数を作るよりも優れています!下のコードのような配列に値を入れてみてください! 最初のステップは、要素が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で配列をインスタンス化することはできません。 array()もクラスではありません。 – Akintunde007

+0

1つの配列から値をとり、別の配列に配置するのはなぜですか?どのように役立つだろうか? – Andreas

+0

@Andreas彼はgetメソッドから値を保存したかったが、すべてのGet値の変数を作成していました。変数を手動で作成したい場合は、20個の変数を作成する必要があります。 !配列に保存しておけばコードを減らすことができ、多くの値を取得するときに役立ちます!または未知の値! –

0

配列を$ _GET個々の変数にするために抽出を使用してください。

extract($_GET); 

Echo $product1Id . $product2Id . $product3Id; 

私はこのことをオンラインのPHPテスターでは起こり得ないので、私はあなたのGET配列のように配列を作成しました。
ここのデモをご覧ください。
https://3v4l.org/RqjRd

関連する問題