ArrayIterator ile birkaç sorun yaşıyorum (Ve aslında ArrayObject ile aynı sorun).ArrayIterator veya ArrayObject'i çürümeyle nasıl çalıştırabilirim?
Her şeyin% 99'u için, genişletilmiş ArrayIterator'ım bir dizi gibi davranır ve harika çalışıyor.
Ne yazık ki, implode() bir ArrayIterator (veya ArrayObject) verilmekten hoşlanmaz.
Dokümanlarda, herhangi bir başka sınıfın, genişletilmiş ArrayIterator tarafından uygulanmasını öneren herhangi bir yere ya da geçersiz kılma yöntemlerine rastlayamıyorum.
Bu çalışmayı nasıl gerçekleştirebileceğinizi öneren var mı? (Not: Her dizi kullandığımda bir diziye dökmek bir çözüm değil, bu dizi gibi bir nesne bir dizi olarak EXACTLY çalışmasını istedim ve bunu bilmek/bakım/döküm yapmak için kodu kullanmamak gibi) dizi ((array) $arrayObject)
downcasting
Teşekkürler Jon. Bunu kabul edilen cevap olarak ayarlayacağım çünkü bilmediğim kullanışlı bir işlev. Ancak bu, callee'nin bir dizi ile uğraşmadığını ve onu atlattığını bilmesini gerektirir. Yavaştır, ekstra kod gerektirir ve kara kutunun sahip olabileceği herhangi bir fikri bozar. Umarım PHP devleri, bir gün tüm dizi işlevlerini Array sınıfından türeyen nesneleri veya Array ve benzer paylaşımın ortak bir temelini kabul eder. –
@OliComber: Bu kesinlikle hoş olurdu, ama açıkçası böyle bir büyük değişiklik olacağını gerçekten göremiyorum. – Jon