在这个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;
答案 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 () {";