Mam kilka problemów z ArrayIterator (I rzeczywiście, ten sam problem z ArrayObject).Jak mogę sprawić, aby ArrayIterator lub ArrayObject działały z implode?
Dla 99% wszystkiego, mój rozszerzony ArrayIterator zachowuje się jak tablica i działa świetnie.
Niestety, implode() nie lubi, gdy otrzymuje ArrayIterator (lub ArrayObject).
Nie mogę znaleźć w dokumentach w dowolnym miejscu, które sugeruje inne klasy do wdrożenia na rozszerzonym ArrayIterator, ani żadnych innych metod do przesłonięcia.
Czy ktoś może zasugerować, jak to działa? (Uwaga: Przesyłanie do tablicy za każdym razem, gdy używam implodu, nie jest rozwiązaniem, ponieważ chciałbym, aby ten obiekt podobny do tablicy działał DOKŁADNIE jako tablica i nie używał kodu, aby go znać/opiekować/rzutować)
Dzięki Jon. Ustawię to jako akceptowaną odpowiedź, ponieważ jest to przydatna funkcja, której nie znałem. Wymaga to jednak, aby osoba przekazująca wiedziała, że nie ma do czynienia z tablicą i ją rzuca. Jest powolny, wymaga dodatkowego kodu i obraża wszelkie pomysły black boxingu. Mam nadzieję, że twórcy PHP pewnego dnia sprawią, że wszystkie funkcje tablicowe przyjmą obiekty wywodzące się z klasy Array, lub wspólną bazę, która Array i podobne akcje. –
@OliComber: Byłoby to zdecydowanie miłe, ale szczerze mówiąc, byłaby to tak wielka zmiana, że naprawdę nie mogę tego zobaczyć. – Jon