2014-12-24 76 views
1

我想做這樣的事情,但更聰明。動態修改php變量名

$armor = $row['armor']; 
$elemental_armor = $row['elemental_armor']; 
... 
$unlock_field=mysql_result($wiki_result_set,$i,"unlock_field"); 

if ($unlock_field == "armor"){ 
    $wiki_armor = $armor; 
} else if ($unlock_field == "elemental_armor"){ 
    $wiki_elemental_armor = $elemental_armor; 
} 

是這樣的可能嗎?

$wiki_{$unlock_field} = {$unlock_field}; 

對不起,這可能是一個簡單的問題。我承認是一個PHP新手。

+2

你可以,但這是一個非常糟糕的做法。用例如數組代替。 – Gerifield

+1

PHP調用這個[變量變量](http://php.net/manual/en/language.variables.variable.php)。 – Sjoerd

+0

我試過的時候我的代碼沒有工作。你能解決我的語法/建議嗎?謝謝。 – KisnardOnline

回答

2
$var = "wiki_{$unlock_field}"; 
$$var = $unlock_field; 
+2

'$ answer。=「text」? +1:-1' – mario

+0

確定一個數組是更好的解決方案,但他問如何做var變量 – dynamic

+0

我+ 1ed你,因爲他們說數組的方式更好,所以我會相信智慧。我承認,不知道哪種方式是最好的,或者我所要求的:D – KisnardOnline

1

您可以將$ wiki_作爲數組變量。

$armor = $row['armor']; 
$elemental_armor = $row['elemental_armor']; 
... 
$unlock_field=mysql_result($wiki_result_set,$i,"unlock_field"); 
$wiki_[$unlock_field] = $row[$unlock_field]; 
1

沒有理由這樣做。你應該使用一個數組來代替......它只是更有意義。

$wiki = array(); 
$unlock_field= mysql_result($wiki_result_set,$i,"unlock_field"); 

$wiki[$unlock_field] = $row['$unlock_field'];