2009-08-13 113 views
1

好吧,这可能听起来像一个愚蠢的问题,但承受着我。我试图做到这一点,当人们去example.php?id = 1,example.php?id = 2,example.php?id = 3等时,他们会看到填充空白的包含文件中调用的不同数据。变量内部的变量

我有一个名为$ offername的变量,我希望在该空间中显示$ offer1name,$ offer2name,$ offer3name,具体取决于$ _GET ['id']表示的内容。理想情况下,当有人去example.php?id = 2时,$ offername将等于$ offer2name。

我想要做这样的事情:

$ offername = $报价$ _ GET [ '身份证']命名

当然,这并不工作,但。我该怎么办?

+0

的可能重复(http://stackoverflow.com/questions/130240/can-我使用一个生成变量名称在PHP中) – outis 2010-10-01 04:03:24

回答

1

这应该工作:

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

更多参见variable variables页面。

+0

非常感谢你! – 2009-08-13 21:53:28

+0

没问题。 :) – zombat 2009-08-13 21:54:01

+0

我现在正在了解他们,它打破了我的头,但我认为这会让我变得更聪明。 – 2009-08-13 21:59:36

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'};