Suppose code like this:
$a = [1,2];
$b = &$a; // $b holds reference to $a
$b[] = 3; // so this makes $a to {1,2,3}
$b = $a; // $b now holds COPY of $a (not reference)
$b[] = 4; // so $a must be the same {1,2,3}
var_dump($a); // but it isn't - $a is {1,2,3,4}
So somehow statement $b = $a; is not allocating a new copy of $a array as it should, but using it's reference only. Why is that ?