2013-04-08 142 views
2

我正在接受函數中的變量。動態地命名變量

例如,該變量被稱爲$field,然後我想通過$field變量中的內容來命名變量。我想讓我的變量爲$randomName

這可能嗎?

謝謝。

回答

2

是的,它是可能的:

$field = "randomName"; 
$$field = "test"; 
$$$field = "test 2"; 
echo $randomName . "\n"; //outputs: "test" 
echo $test. "\n"; //outputs: "test 2" 

檢查this

0

您可以指定變量作爲變量名。

$$field 

這將做它聽起來像你所要求的。

1
$field = "randomName" ; 
${$field} = "yeah" ; 

${"randomName"} = "that works too" ; 
+0

+1對於使用大括號:) – 2013-04-08 17:29:48

0

這是可能的(見"variable variables"),但這種做法應勸阻,它往往是更好地使用數據結構(即array with keys)對於這種動態操作的。

+0

爲什麼要不要氣餒?我無法實現我需要使用數組。 – sark9012 2013-04-08 17:00:39

+3

我真的很想看看使用數組無法實現的功能嗎? – bwoebi 2013-04-08 17:01:19

+1

@Luke因爲它通常是*錯誤的方法。有多少種語言具有「變量變量」或直接等價的? *很少*。然而,使用Maps(即PHP/array,Java/HashMap,Perl/hash,Python/Dictionary)解決完全相同的問題並沒有問題。當然,試圖解決的真正問題可能是......特別的:確保在帖子中包含適用的上下文。 – user2258571 2013-04-08 17:02:20

1

PHP的語言功能叫做variable variables。在你的情況下:

$field = 'randomName'; 

$$field = "Hello world!"; 

echo $randomName; // prints out "Hello world!"