2009-08-13 16 views
1

これはばかな質問のように聞こえるかもしれませんが、私には耐えられます。私は、人がexample.php?id = 1、example.php?id = 2、example.php?id = 3などに行くときに、空白を埋めるファイルから呼び出される別のデータを参照するようにしています。変数内の変数

私は$ offernameという変数を持っていて、$ _GET ['id']の記載に応じて、そのスペースに$ offer1name、$ offer2name、$ offer3nameを表示したいとします。理想的には、誰かがexample.php?id = 2に行くと、$ offernameは$ offer2nameに等しくなります。

私はこのような何かやりたい:。

$ offername = $のオファーを$ _ GET [ 'ID']

に名前を付けるしかし、動作しませんもちろん。私は何をすべきか?

+0

の可能複製(http://stackoverflow.com/questions/130240/can- i-use-a-generated-name-in-php) – outis

答えて

1

これは動作するはずです:

$var = 'offer' . $_GET['id'] . 'name'; 
$offername = $$var; 

は、より多くのためにvariable variables上のページを参照してください。

+0

ありがとうございました! –

+0

問題ありません。 :) – zombat

+0

私は今それらについて学んでいる、それは私の頭を開いているが、私はよりスマートになると思う。 –

1

PHPは、あなたが$offer_variable_name = 'offer' . $_GET['id'] . 'name';

を持っている。そして$offername = $$offer_variable_nameのようなものを使用することができ、変数の変数に

を使用することができます。

5

もっとクリーンな解決策は、多次元配列を使用することです。そのような例

、代わりの

$offername = ${offer.$_GET['id'].name}; 

使用

$offername = $offer[$_GET['id']]['name']; 

と定義$プラン:

$offer = array(
    1 => array(
    'name' => 'firstoffer', 
), 
    2 => array(
    'name' => 'secondoffer', 
), 
    3 => array(
    'name' => 'thirdoffer', 
), 
); 

は私が読みにくい変数変数を見つけ、ほとんどの時間私はそれらが使用されるのを見ると、配列がはるかに良いでしょう。

0

あなたは他のソリューションに加えて行うことができます[?私はPHPで生成された変数名を使用することができます]

$offername = ${'offer' . $_GET['id'] . 'name'};