-1

在这个 php 代码中,在while循环期间,我希望使用后面的 3 个变量,称为$menu_1$menu_2$menu_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

4 回答 4

4

您可以为此使用大括号:

${'menu' . $i}

但我强烈建议你只是在循环中回显你需要的东西。

另外,mysql_*不推荐使用功能-请使用 PDO 或mysqli方式。

于 2013-01-03T23:18:13.330 回答
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 个不同的元素时,您还可以轻松地循环使用这会使事情变得更好。

于 2013-01-03T23:20:21.507 回答
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

显然,就像其他用户所说的那样,您最好使用数组。但我还是回答了你的信息。

于 2013-01-03T23:21:55.087 回答
0

为什么不使用数组呢?

$menu[$i] = "\n\t$('#menu_" . $i . "').hover(function () {";
于 2013-01-03T23:13:28.233 回答