exchangeArray(array):\n"; $ao = new ArrayObject(); $ao->exchangeArray(array('original')); var_dump($ao); echo "\n--> exchangeArray(object):\n"; $obj = new stdClass; $obj->newProp = 'changed'; $ao->exchangeArray($obj); var_dump($ao); ?> Actual output on PHP 5.3.0-dev (cli) (built: Jul 28 2008 00:21:59) : --> exchangeArray(array): object(ArrayObject)#1 (1) { ["storage":"ArrayObject":private]=> array(1) { [0]=> string(8) "original" } } --> exchangeArray(object): object(ArrayObject)#1 (0) { }