Załóżmy, że dane trzymam w obiekcie w pewnej dużej tablicy, takim drzewku złożonym z mnieszych tablic i dopiero te tablice zawierają wartości.
Coś w tym stylu:
//itd... itd... );
Teraz chciałbym mieć małpki, które po gałązkach tego drzewka mogą skakać i zwywać listki.
$Monkey1 = new CMonkey( 'cyfry' ); $Monkey1 ->reset(); while ( $next = $Monkey1 ->get_next() ) // 1, 2, 3 { }
Problem robi się kiedy dwie małpki siadają na tej samej gałązce.
Jeśli każda ma referencję do tej samej części tablicy to operacje na tablicy za pomocą reset(), each(), next() itp... zawadzają o siebie.
A jeśli każa dostaje kopię tablicy to następuje utrata wydajności i patrząc na czas wykonania skryptu najprawdopodobniej następuje kopiowanie tablic.
Jakby były wskaźniki i nie trzeba było korzystać z reset(), each(), next() toby było ok.
A może gdzieś w php jest zaszyty jakiś mechanizm jak pozwalający to dobrze zrobić? Chodzi o jakieś iteratory które mogą łazić po jednej wspólnej złożonej strukturze danych nie powodując w żadnym momencie jej kopiowania.