> There even was an RFC in voting which Joe implemented and it addresses nearly > what is discussed it this thread https://wiki.php.net/rfc/arrayof
The link above has broken page links to the mailing list. I’ve found the externals.io <http://externals.io/> history and have given it a read: https://externals.io/message/108175 Typed array properties V2 externals.io https://externals.io/message/71143#71191 Introducing "Array Of" RFC externals.io It seems like everyone always gets really hung up on generics! That or how to syntactically implement this. Again, I think this issues is not adding generics, but again understanding what we’d pass to Array<T>. How do we model complex arrays: interface iArrayA ['a' => string ] interface iArrayB extends iArrayA ['b' => string, 'c' => ?string, ‘d’ => SomeClass, ‘e’=> iArrayA, ‘f’ => mixed ] class D { public ?iArrayB $exampleA; // Array<iArrayA> public ?iArrayB[] $exampleB; // Array<iArrayA>[] } Since we do have SplFixedArray which is essentially SplFixedArray<int>, which is a sequence, already built in I’m thinking we can focus on SplObjectStorage which could easily be made SplObjectStorage<string>, for example. I’m not saying custom data types wouldn’t be a good thing… But maybe we can co-exist class D { public ?Dict<iArrayB> $exampleA; } Sorry for continuously enterchanging implements with extends, it absolutely supposed to be extends! If someone has an opinions/considerations on wether to extend the current array implemention with metadata or creating a dedicated structure via a new class `SplTypeDefinedArray` that would be helpful. The posed implementation reads as a static cast, but it doesnt have to be implemented as such. Best, Richard Miles