PHP creates new instance when pushing element

Why does PHP create a new array when I push an element?

$a = array();
$b = $a;

$b[] = "Hello!";
echo count($a);
echo count($b);

Here you would expect the count for $a and $b to be equal, but they are not.


By default, PHP is copying values when assigning them. If you want a reference, you can use the & operator:

$a = array();
$b = &$a;

$b[] = "Hello!";
echo count($a);  // prints 1
echo count($b);  // prints 1

Need Your Help

How does jstl's sql tag work?

java jsp web-applications jstl

I'm using the following code to query a database from my jsp, but I'd like to know more about what's happening behind the scenes.