变量内部的变量

时间:2009-08-13 21:49:12

标签: php syntax variables

好吧这可能听起来像一个愚蠢的问题,但请耐心等待。我试图这样做,以便当人们去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 = $ offer。$ _ GET ['id']。name

但当然这不起作用。我该怎么办?

4 个答案:

答案 0 :(得分:5)

更简洁的解决方案是使用多维数组。

例如,而不是

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

使用

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

并定义$ offer,如下所示:

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

我发现变量变量难以阅读,而且大多数时候,当我看到它们使用时,数组会好得多。

答案 1 :(得分:1)

这应该有效:

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

有关详情,请参阅variable variables上的页面。

答案 2 :(得分:1)

PHP可以使用变量

所以你可以拥有$offer_variable_name = 'offer' . $_GET['id'] . 'name';

然后使用类似$offername = $$offer_variable_name的内容。

答案 3 :(得分:0)

除了其他解决方案之外,您还可以:

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