![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Tworzę obiekt, który zawiera tabelę, po której chciałbym aby był iterowany.
I teraz pytanie - skoro zależy mi jedynie na iteracji w FOREACH to czy zaimplementować w klasie interfejs ITERATOR czy ITERATORAGGREGATE. Ten drugi zajmie o wiele mniej kodu. Wydaje mi się, że rozumiem, że ITERATOR jest idealny jeżeli chcę zrobić "bardziej kreatywne" iterowanie po tej tabeli ale jeśli chcę najzwyklejsze to czy opłaca mi się używać ITERATOR? Dlaczego tak/nie? -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
W tym przypadku najprostszym rozwiązaniem będzie implementacja IteratorAggregate, a w metodzie getIterator tworzenie i zwracanie obiektu ArrayIterator.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ok - też mi się tak właśnie wydawało, że to jest najprostsze wyjście ale kiedy w takim razie zastosować ITERATOR?
![]() -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Np. wtedy gdy w domyśle nie iterujesz po tablicy, tylko wyznaczasz dynamicznie wartości.
Przykładem może być iterowanie po dużych kolekcjach obiektów, której nie chcesz wczytywać na raz do pamięci, gdyż jest to nie wydajne, ale tworzysz na żądanie pojedyncze obiekty w iteratorze, czyli w jednym momencie w pamięci istnieje jeden obiekt który jest zwracany przez iterator. Szczerze powiedziawszy to już dawno temu ostatni raz implementowałem czysty interfejs Iterator, jest wiele dobrych iteratorów w spl (iteratory rekursywne, iteratory iterujące po plikach w systemie plików, iteratory filtrujące, keszujące itp), które wystarczają w większości przypadków -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dzięki
![]() -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 08:19 |