PHP:如何动态将变量赋值到数组中

3

这真的让我很烦恼,我无论如何都不能弄清楚如何使它工作或为什么一开始它就不能工作。

以下是我正在尝试做的:

这是我的变量声明:

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

这是我的数组声明:

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

我是php的新手,从我的理解来看,这应该创建一个数组,并打印出:

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

但是它并没有。

创建一个数组的正确方法是什么,我可以给索引i命名,然后将变量赋值给这些索引的值?

数组声明:

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

代码可以运行,但我不明白为什么不能使用变量动态赋值。

请帮忙解决!谢谢。


你确定它们在同一作用域内吗?你不是试图在函数中使用外部变量来定义数组,对吧? - Niet the Dark Absol
1
你尝试过 $my_array = array('L' => $locale, 'R' => $realm, 'C' => $character ); 吗? - Fabien
它实际上打印什么?你尝试过var_dump($my_array)吗? - sailingthoms
2个回答

5

您只是有一个小的语法错误, 缺少了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


我太不敢相信了,当我评论的时候居然错过了那个!XD - Niet the Dark Absol
非常感谢。在我创建问题时,数组缺失实际上只是我的一个笔误。但是,这让我找到了真正的问题。我正在使用WordPress,我的分配错误,我使用了$locale = the_author_meta($current_user->id,'locale');,而我应该使用$locale = $current_user->locale;。 - Vigs

0
你需要使用 array 关键字:
$my_array = array( 'L' => $locale, 'R' => $realm, 'C' => $character );

不确定为什么第二个会起作用!


没有使用 array 关键字,而是使用以下代码:$locale = the_author_meta($current_user,'locale');而不是:$locale=$current_user->locale;似乎是问题所在。感谢所有的帮助。*我正在使用WordPress。 - Vigs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接