>> If I were to choose between typed-array and collection like Derick showed a >> little bit I'd choose typed arrays definitely as a first feature to be >> merged into PHP.
Cheers indeed. I’m still looking for a karma sponsor ;) > Tuples are nice because they are bounded, they can probably act like arrays … I’ve been leaning toward this working under the hood like SplObjectStorage and SplFixedArray. For those who may not be super familiar, I’ve added the PHP documentation links: https://www.php.net/manual/en/class.splobjectstorage.php https://www.php.net/manual/en/class.splfixedarray.php A typed array would/may not be a hash table, but a fixed list of some kind. I’ve had a few suggestions and one individual in the `is` operator conversation said hash tables may be appropriate anyway. Time will tell on this front and its implementation is worth the open discussion. What should be absolute is that arrays with a ‘fixed’ type maynot assign members whoes types are not strictly defined. Thus, typed arrays are stictly bound. SplFixedArray acted like numeric Seq<> whereas SplObjectStorge adds functionionallity to our normal arrays and acts our Dict<>. I think a big issue this proposal solves is how to syntactically approach saying a member is present or null or if member is present it should only be a string. The initial proposed syntax in the early feedback of the pattern matching rfc poses: > So yes, `[?'foo' => string]` and `['foo' => ?string]` are indeed > different. A lot of discussion around this, but I think with interfaces this becomes trivail. Note my example code sovles this using operators we already have: &, |, &| interface iArrayA ['a' => string ] interface iArrayB implements iArrayA ['b' => string, 'c' => ?string ] // reads the same as a typecast $array = (iArrayA &| iArrayB) [ ‘a’ => ‘hello' ]; > … (possibly even cast to them and vice-versa). The way I implemented declaring types is actually just a typecast, so perhaps that should change or we just extend the current array implementation to hold another metadata field.? Best, Richard Miles