Php 创建数组后设置数组键值

Php 创建数组后设置数组键值,php,Php,我试图在创建数组后设置数组键的值。我知道这会,但这确实会产生错误: 注意:未定义的变量:C:\web\apache\htdocs\test\array.php中第144行的peter已经有岁了。 $age=array("Peter"=>$ageVal);// Has to come first, since it's inside an include file. $ageVal = 35; //Comes later. echo "Peter is " . $age['Peter']

我试图在创建数组后设置数组键的值。我知道这会,但这确实会产生错误:

注意:未定义的变量:C:\web\apache\htdocs\test\array.php中第144行的peter已经有岁了。

$age=array("Peter"=>$ageVal);// Has to come first, since it's inside an include file.

$ageVal = 35; //Comes later.

echo "Peter is " . $age['Peter'] . " years old.";

但是,有没有什么方法可以做到这一点而不改变顺序?a) 首先创建数组b)数组键的值稍后设置。

您可以在一行中设置两个变量

$age['Peter'] = $ageVal = 35;

您可以在一行中设置两个变量

$age['Peter'] = $ageVal = 35;

不要在顶部初始化数组

$age=array();// Has to come first, since it's inside an include file.

$ageVal = 35; //Comes later.
$age['Peter'] = $ageval;  // Set the array element here.

echo "Peter is " . $age['Peter'] . " years old.";

不要在顶部初始化数组

$age=array();// Has to come first, since it's inside an include file.

$ageVal = 35; //Comes later.
$age['Peter'] = $ageval;  // Set the array element here.

echo "Peter is " . $age['Peter'] . " years old.";

是的,您可以通过分配数组值来实现这一点,尽管我不建议这样做

这是有效的(但我不建议):

这是我建议的做法:

$age = array(); // Comes first, since it's inside an include file.

$ageVal = 35; // Comes later.
$age['Peter'] = $ageVal; // Assigns a value to the 'Peter' key in $age

echo "Peter is " . $age['Peter'] . " years old.";

是的,您可以通过分配数组值来实现这一点,尽管我不建议这样做

这是有效的(但我不建议):

这是我建议的做法:

$age = array(); // Comes first, since it's inside an include file.

$ageVal = 35; // Comes later.
$age['Peter'] = $ageVal; // Assigns a value to the 'Peter' key in $age

echo "Peter is " . $age['Peter'] . " years old.";

你的第一个方法真的很好。但是你为什么不推荐呢?有什么可能出错?@jmenezes有几个原因。引用在PHP代码中并不常见,因此其他开发人员可能不熟悉它们。它们会使代码变得非常混乱和难以阅读(每个人都知道
$ageVal=35;
35
分配给
$ageVal
,没有人会期望它也分配给
$age['Peter']
)。它们不是真正的引用(比如C指针),很多程序员都弄错了,结果弄糊涂了。我相信它们通常也比PHP中的普通赋值慢。我明白你的意思。我想出了艰难的办法;-)你的第一个方法真的很好。但是你为什么不推荐呢?有什么可能出错?@jmenezes有几个原因。引用在PHP代码中并不常见,因此其他开发人员可能不熟悉它们。它们会使代码变得非常混乱和难以阅读(每个人都知道
$ageVal=35;
35
分配给
$ageVal
,没有人会期望它也分配给
$age['Peter']
)。它们不是真正的引用(比如C指针),很多程序员都弄错了,结果弄糊涂了。我相信它们通常也比PHP中的普通赋值慢。我明白你的意思。我想出了艰难的办法;-)