如何在PHP中创建和连接动态变量?

时间:2013-01-03 23:11:08

标签: php dynamic-variables

在这个PHP代码中,在while循环期间,我希望以后使用名为$menu_1$menu_2$menu_3的3个变量。这可能在PHP吗?

while($parent_row = mysql_fetch_array($parent_result)){
    $menu_ = "";
    $menu_ . $i = "\n\t$('#menu_" . $i . "').hover(function () {";
}
echo $menu_1;
echo $menu_2;
echo $menu_3;

4 个答案:

答案 0 :(得分:4)

每当有人说"动态变量"这是一个大红旗。你可以做到,但99%的时间都是个坏主意。您可能正在寻找的是阵列。如果你写:

$menus = array();
while($parent_row = mysql_fetch_array($parent_result)){
    $menus[$i] = "\n\t$('#menu_" . $i . "').hover(function () {";
}
echo $menus[1];
echo $menus[2];
echo $menus[3];

在没有深入研究维护问题的情况下,您将获得您所拥有的东西。动态变量名称会给你带来的潜在灾难。你也可以轻松地循环$menus,当你突然有2个,4个或40个不同的元素时,这会让事情变得更好。

答案 1 :(得分:3)

您可以使用大括号:

${'menu' . $i}

但我强烈建议你只是在回路中回应你需要的东西。

另外,mysql_*函数已被弃用 - 请选择PDO或mysqli方式。

答案 2 :(得分:1)

是的,你可以。只需使用括号。看看这个例子:

<?php

$one = 1;

$suffix_one = "_".$one;
$suffix_two = "_2";

$base_1 = "VALUE ONE";
$base_2 = "VALUE TWO";

echo ${"base".$suffix_one}." , ".${"base".$suffix_two};

?>

结果:

VALUE ONE , VALUE TWO

显然,和其他用户一样,你最好使用数组。但无论如何我都回答了​​你的消息。

答案 3 :(得分:0)

为什么不使用数组?

$menu[$i] = "\n\t$('#menu_" . $i . "').hover(function () {";