Usando
exchangeArray se soluciona ese error, pero sinceramente no sé si es la mejor forma de hacerlo:
Código PHP:
Ver originalclass Coleccion extends ArrayObject
{
public function clear() {
$this->exchangeArray($this);
foreach ($this as $k => $v) {
$this->offsetUnset($k);
}
}
}
$c = new Coleccion();
$c[] = 'valor1';
$c[] = 'valor2';
$c[] = 'valor...';
$c->clear();
echo '<pre>', print_r($c, true), '</pre>';