-1

このphpコードでは、ループ中に、、、、およびとwhile呼ばれる後の3つの変数を使用することを望んでいました。これはPHPで可能ですか?$menu_1$menu_2$menu_3

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 に答える