On 30.10.2016 at 18:19, Rowan Collins wrote: > On 30/10/2016 12:07, Fleshgrinder wrote: > >> I think it makes much more sense to deprecate all of them and introduce >> new ones that work in the way we want them to for several reasons. >> `end()` and `reset()` would have to continue working as they do until >> the next major release since people who use them might rely on the way >> they work. This means in effect that nobody can make her PHP 7 code PHP >> 8 ready up front. >> >> Instead we could directly introduce `array_first()` and `array_last()` >> with the next feature release -- even if the others are not deprecated >> -- and everyone can update their code or at least use it in new code. > > I've always felt like these functions were "missing" from the language - > there are a number of ways you *can* get the first or last item in an > array, but all have side effects, because they're not designed for this > purpose. It just so happens that - most of the time - reset() and end() > have the smallest side effects. > > I can't remember if it was an earlier discussion here, or somewhere > else, that pointed to getting the first and last *key* as an extra use > case worth considering. It's currently possible (if awkward) with key(). > > I think it would make sense to, in the same version: > > - deprecate reset(), end(), each(), and key() > - introduce array_first(), array_last(), array_first_key() and > array_last_key() > - document replacements for whatever other use cases we can find > examples of > > Doing them all at once makes the messaging much clearer - this family of > functions is going to be removed; and here are the new functions you can > start using immediately instead.
I fully agree. -- Christoph M. Becker -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php