首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP中使用数组内部的数组引用?

如何在PHP中使用数组内部的数组引用?
EN

Stack Overflow用户
提问于 2018-07-30 01:00:43
回答 2查看 0关注 0票数 0

我希望能够做到以下几点:

代码语言:txt
复制
$normal_array       = array();
$array_of_arrayrefs = array( &$normal_array );

// Here I want to access the $normal_array reference **as a reference**,
// but that doesn't work obviously. How to do it?
end( $array_of_arrayrefs )["one"] = 1; // choking on this one

print $normal_array["one"]; // should output 1
EN

回答 2

Stack Overflow用户

发布于 2018-07-30 09:51:18

这里有几种方法。

代码语言:txt
复制
<?php
$normal_array       = array();
$array_of_arrayrefs = array( "blah", &$normal_array );

foreach ($array_of_arrayrefs as &$v);
$v["one"] = 1;

echo $normal_array["one"];  //prints 1
?>


<?php
$normal_array       = array();
$array_of_arrayrefs = array( "blah", &$normal_array );

$lastIndex = @end(array_keys($array_of_arrayrefs)); //raises E_STRICT because end() expects referable.
$array_of_arrayrefs[$lastIndex]["one"] = 1;

echo $normal_array["one"];  //prints 1
?>
票数 0
EN

Stack Overflow用户

发布于 2018-07-30 10:13:05

你不应该首先通过引用传递。这通常被认为是不好的做法,因为它很难看出状态被修改的地方。

这是一个非常常见的误解,即引用速度更快,事实并非如此。 事实上,它们有点慢。PHP有一个名为copy-on-write的系统,这意味着在写入变量之前,实际上并没有复制变量。

唯一真正需要引用的地方是PHP4,否则会克隆对象。PHP5中不需​​要这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档