IteratorAggregate yeni unsurlar yazamıyorum?

0 Cevap php

I IteratorAggregate sadece bir nesneye dizi gibi read erişim sağladığını düşünerek düzeltmek muyum? Ben nesne olarak-dizi yazmak gerekiyorsa, o zaman kullanmanız gerekir Iterator?

Yeni bir öğe eklemek için çalışırken önemli bir hataya neden bir IteratorAggregate nesnenin gösteri şöyle:

<?

class foo implements IteratorAggregate {

    public $_array = array('foo'=>'bar', 'baz'=>'quux');

    public function getIterator() {
        return new ArrayIterator($this->_array);
    }

} // end class declaration


$objFoo = & new foo();

foreach ( $objFoo as $key => $value ) {
        echo "key: $key, value: $value\n";
}

$objFoo['reeb'] = "roob";

foreach ( $objFoo as $key => $value ) {
        echo "key: $key, value: $value\n";
}

$ php test.php
key: foo, value: bar
key: baz, value: quux

Fatal error: Cannot use object of type foo as array in /var/www/test.php on line 20

Call Stack:
    0.0009      57956   1. {main}() /var/www/test.php:0

0 Cevap