[英]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.