Итак, я хочу расширить, например, этот RecursiveIterator из SPL с помощью каждой функции, чтобы я мог легко пройтись по объекту / массиву
class it extends RecursiveArrayIterator {
public function each( $function, $args=array() ){
$args = (sizeof($args)>0) ? array_merge(array($this),(array)$args) : array($this);
iterator_apply( $this, $function, $args );
return $this;
}
}
//Running it:
$it = new it( &$array );
$it->each( function( $it ){
$it->offsetSet( $it->key(), $it->current() + 1 );
return true;
});
Что приводит к:
устарело: передача по времени вызова устарела в ...
Проблема в том, что я не могу или не должен использовать ссылку при создании объекта, потому что он ограничен. Но когда я перебираю массив / объект, я хочу иметь возможность вносить в него изменения, как я могу достичь этого, не меняя allow_call_time_pass_reference
на On
? Я использую wamp с php 5.3.
Хорошего дня
1 : http://www.php.net/manual/en/class.recursivearrayiterator.phpin ...