php是通过引用访问的数组元素吗?

时间:2013-03-17 01:19:26

标签: php arrays pass-by-reference

问题的标题可能难以解释,以下是可能有用的代码

$containers = array(); // array of arrays
for ($index = 0; $index < 4; $index++) {
  $containers[] = array(); // each element of the array is an array
}

foreach ($objects as $object) {
  $index = computeIndex($object); // compute the index into the $containers
  $container = $containers[$index]; // get the subarray object
  $container[] = $object; // append $object to the end of the subarray
  $containers[$index] = $container; // <--- question: is this needed?
}

所以问题显示,我还需要将子阵列重新分配给数组吗?如果它是数组中元素的引用,那么我认为我不需要。

1 个答案:

答案 0 :(得分:2)

是的,需要最后一行;数组元素存储为值而不是引用。但是,PHP允许您使用&

创建引用
$container = &$containers[$index];
$container[] = $object;

你也可以省去一些麻烦而且只做:

$containers[$index][] = $object;