The $index argument seems to be NULL for append operations, e.g.:
<?php
// example extension class
class Test extends ArrayIterator
{
public function offsetSet($index, $newval)
{
echo 'Test::offsetSet('.var_export($index, true).', '.var_export($newval, true).")\n";
}
}
// test
$i = new Test;
$i[] = 'append a value';
?>
The result is:
Test::offsetSet(NULL, 'append a value')