2011-11-16 39 views
5

我正在尋找類似extract()的相反內容。PHP - 作爲數組鍵的變量名稱

說我有幾個變量

$state = "FL"; 
$city = "Hollywood"; 
$zip = "33021"; 

我怎樣才能讓一個使用變量名作爲數組的數組中的鍵:

array("state"=>"FL", "city"=>"Hollywood", "zip"=>"33021"); 

回答

7

你應該儘管使用compact()功能。如:

$state = "FL"; 
$city = "Hollywood"; 
$zip = "33021"; 
$array = compact('state', 'city', 'zip'); 

編輯:似乎做正是你需要的,不知道爲什麼,你不認爲你需要它。如果你正在尋找正好extract()相反的東西,比如將所有可用的變量放到一個數組中,你不能那樣做,因爲PHP會在當前範圍內從字面上取所有變量,並將它們進入陣列。你必須以某種方式指定哪些變量。

+0

我不確定你的正確與否,但是你確實意識到他在問題中明確表示它不是'compact()'對嗎? –

+0

@Greg:是的,我忘了包含我的解釋... – animuson

+0

compact()有一個缺點,因爲大多數IDE都不會意識到存在對這些變量的隱藏引用。 –