Re: [RFC] Allow object keys in arrays

From: Date: Tue, 12 Jan 2021 16:18:28 +0000
Subject: Re: [RFC] Allow object keys in arrays
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-112850@lists.php.net to get a copy of this message
Hi Nikita, On Mon, Jan 11, 2021, 15:29 Nikita Popov <nikita.ppv@gmail.com> wrote: > Hi internals, > > I would like to present a draft RFC for allowing object keys in arrays: > https://wiki.php.net/rfc/object_keys_in_arrays > > The specification in the RFC is incomplete, and primarily focussed on what > impact this has from an internal perspective. > https://github.com/php/php-src/pull/6588 is a draft > implementation that > illustrates the necessary changes. > > The primary motivation, and reason why I am looking into this now, is that > the current enum proposal is based on objects, and I consider it somewhat > important that enum values can also work as array keys. > > From a technical perspective, this also lays the groundwork for supporting > other key types in the future, e.g. if we wish to switch PHP to use > arbitrary-precision integers. > Overall, this is something I always wanted, but adding it means that the type of all array functions returning keys widens, which is quite the BC hell 🤔 The basic assumption is that, when an array is given, `foreach ($array as $key => ) produces a $key if type string|int`. While this assumption does not hold true for iterable (notably SplObjectStorage, Generator), it's still quite a jump to break it here, so it would probably require scheduling such a feature for 9.0. >

« previous php.internals (#112850) next »