繁体   English   中英

我不理解结合&和[]的PHP参考代码

[英]I do not understand PHP references code that combines & and []

我正在阅读我们使用的库(SimplePie)中的一些代码,并且尝试查找一些内存问题。我发现了如下所示的代码,但我不明白它的作用

<?php
$a1=array('a1first',2,3);
$a3=array();
$a3[]=&$a1;
var_dump($a1);
$a1=& $a1[];
var_dump($a1);
$a1="bbb";
echo "<br />";
var_dump($a1);
echo "<br />";
var_dump($a3);
?>

输出是

array(3) { [0]=> string(7) "a1first" [1]=> int(2) [2]=> int(3) } NULL 
string(3) "bbb" 
array(1) { [0]=> array(4) { [0]=> string(7) "a1first" [1]=> int(2) [2]=> int(3) [3]=> &string(3) "bbb" } }

我的问题是此行的用途以及何时使用

$a1=& $a1[];

$a1=& $a1[]; 在数组$a1附加一个新的空项目(本身是对$a3的引用),然后将$a1设置为对此项目的引用。

=&返回对右侧的引用,而不是复制它。

$a1是一个数组,而$a1[]指向数组中的下一个空位置,因此您可以说:

$a1[] = 4;

和4将添加到现有数组$a1

我不确定分配右侧使用[]是否有效,但是代码是什么

$a1=& $a1[];

正在做的是说$a1现在是一个指针(引用)在年底的新价值$a1 显然,这有点循环,所以我不确定这是什么!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM