2013-01-03 64 views
-1

在這個php代碼中,在while循環中,我希望使用後面的3個變量,分別叫做$menu_1,$menu_2$menu_3。這在PHP中可能嗎?如何在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; 
+1

你應該研究PHP數組http://php.net/manual/en/language.types.array.php,然後谷歌的「PHP動態變量」。第一個結果總是在php.net上(PHP是如此流行的語言),就在文檔中。 –

+0

謝謝。我認爲我所做的有點棘手,我需要在精確的地方插入jquery/css。感謝您對我是PHP新手的鏈接。 – JoJo

+0

@mario我們不同意。 – JoJo

回答

3

可以使用大括號爲:

${'menu' . $i} 

,但我強烈建議你只是爲了呼應你所需要的循環內的東西。

另外,mysql_*功能已過時 - 請轉到PDO或mysqli的方式。

+0

我確定會馬上查看PDO或mysqli。我必須坦白地說,即使與經典的asp代碼相比,'老'的方式也能夠打開$$。 – JoJo

+0

這很好,並回答了我上面的問題。我肯定會使用數組!並改變我的數據庫調用。謝謝。 – JoJo

0

爲什麼不使用數組呢?

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

每當有人說「動態變量」,這是一個大紅旗。你可以做到這一點,但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個不同的元素時,這會讓事情變得更好。

+0

謝謝。我可能會爲此進行大部分工作。對此,我真的非常感激。 – JoJo

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 

顯然,像其他用戶說,你最好使用數組。但我仍然回答你的信息。