On my php 5.3.5 installation, i discovered that value can be set by reference and not by copy ... depending the context..
so this is différent from what a regular array()
<?php
function set(&$x, &$a )
{
$x[] = $a;
}
$x = new ArrayObject();
$y = array();
$z = new ArrayObject();
$a = array( 'foo' );
set($y,$a);
set($x,$a);
$z[]=$a;
$a = array( 'bar');
set($x,$a);
set($y,$a);
$z[]=$a;
print_r($x);
print_r($y);
print_r($z);
?>
// output
ArrayObject Object
(
[storage:ArrayObject:private] => Array
(
[0] => Array
(
[0] => bar
)
[1] => Array
(
[0] => bar
)
)
)
Array
(
[0] => Array
(
[0] => foo
)
[1] => Array
(
[0] => bar
)
)
ArrayObject Object
(
[storage:ArrayObject:private] => Array
(
[0] => Array
(
[0] => bar
)
[1] => Array
(
[0] => bar
)
)
)