2013-04-11 86 views
2

這是對我的傷害,對於我的生活,我似乎無法弄清楚如何讓這個工作,或爲什麼它不起作用。PHP:如何動態地將變量分配到數組

這裏是我想要做的事:

這裏是我的變量聲明:

$locale = 'US'; 
$realm = 'magtheridon'; 
$character = 'billymayys'; 

這裏是我的數組聲明:

$my_array = ('L' => $locale, 'R' => $realm, 'C' => $character); 

我新的PHP和從我可以告訴這應該創建一個陣列誰打印出來:

Array( 
     [L] => US, 
     [R] => magtheridon, 
     [C] => billymayys, 
    ); 

但事實並非如此。

什麼是創建一個數組的正確方法,誰索引我可以命名,然後將變量分配給這些索引的值?

數組聲明:

$my_array = ('L' => 'US', 'R' => 'magtheridon', 'C' => 'billymayys'); 

作品,但我不明白爲什麼我不能動態地分配使用變量的值。

請幫忙!謝謝。

+0

你確定他們在相同的範圍?你不是試圖用函數外部的變量來定義函數中的數組,你呢? – 2013-04-11 19:52:36

+1

你試過'$ my_array = array('L'=> $ locale,' – Fabien 2013-04-11 19:52:40

+0

它實際上打印了什麼?你試過var_dump($ my_array)嗎? – sailingthoms 2013-04-11 19:52:55

回答

4

你只是有一個小的語法錯誤,缺少array關鍵字。

變化:

$my_array = ('L' => $locale, 'R' => $realm, 'C' => $character); 

要:

$my_array = array('L' => $locale, 'R' => $realm, 'C' => $character); 

或者:

$my_array = [ 'L' => $locale, 'R' => $realm, 'C' => $character ]; // PHP 5.4+ 

工作例如:http://3v4l.org/d2UWM

+0

不能相信我錯過了,當我評論XD – 2013-04-11 19:54:26

+0

非常感謝。當我創建問題時,數組的缺失實際上只是我的一個錯字。但是,它導致我發現真正的問題。我正在使用wordpress和我的任務是錯誤的,我使用$ locale = the_author_meta($ current_user-> id,'locale');當我應該使用$ locale = $ current_user-> locale; – Vigs 2013-04-11 20:05:14

0

您需要使用array關鍵字:

$my_array = array('L' => $locale, 'R' => $realm, 'C' => $character); 

不知道爲什麼第二個工作!

+0

使用沿不存在'array'關鍵字: '$區域= the_author_meta($ CURRENT_USER, '區域設置');' 代替: '$區域= $ current_user->語言環境;'似乎已經問題。感謝所有的幫助。 *即時通訊與wordpress工作。 – Vigs 2013-04-11 20:11:35