I've been writing a parser for PHP and while messing around with some third-party code, I run into a weird case regarding the []
operator.
Normally, []
is used without a key on the left side of an assignment meaning "add as the last element".
$a = array();
$a[] = 1;
will add 1 in the end of array $a.
In the aforementioned code though, I saw a line like this:
$r =& $a[];
When I tried to remove the &, I got a rather expected fatal error:
Fatal error: Cannot use [] for reading
With the &
though, PHP does not complain at all. What is the meaning of the expression
& $a[];
?