[prev in list] [next in list] [prev in thread] [next in thread] 

List:       php-internals
Subject:    Re: [PHP-DEV] [RFC][Under Discussion] Add functions array_key_first()and array_key_last()
From:       Levi Morrison <levim () php ! net>
Date:       2018-06-28 14:52:22
Message-ID: CAFMT4Nqb3qy_bsdoseHLC-Yd06+0a-zHtFEJXywfqsjeHr71ig () mail ! gmail ! com
[Download RAW message or body]

On Thu, Jun 28, 2018 at 7:02 AM Woortmann, Enno <enno.woortmann@web.de> wrote:
>
> Am 26.06.2018 um 16:42 schrieb Rowan Collins:
> > On 26 June 2018 at 08:58, Marc Bennewitz <dev@mabe.berlin> wrote:
> >
> >> Hi all,
> >>
> >> I just want to add some information that I feel it's missing in that
> >> discussion - I'm sorry if it was mentioned already.
> >>
> >> 1. It's already possible to extract the key and value of any index
> >> position of an array using array_slice: https://3v4l.org/mib99
> >>
> >> 2. "array_[key|value]_[first|last]($array)" is in my opinion not a good
> >> option as it lacks the possibility to extract key/value from any position.
> >> Something like "array_[key|value]_index($array, $index)" where $index
> >> would be the index position or negative index position from right.
> >
> > The big advantage of separate functions is that they make the intent clear;
> > we could combine all four functions into one: array_index(int $position,
> > bool $key), but "array_key_last($something)" is a lot clearer to read than
> > "array_index($something, -1, true)". Are there actually use cases for
> > getting "the 5th key from the end of the array", common enough to make "the
> > last key in the array" harder to write?
> >
> > Regards,
>
> As well as Rowan I don't see use cases for fetching keys/values at any
> position inside the array for justifying to break up the current
> readable function signatures.
> Combining multiple use cases and tasks into a single function always
> offends the single responsibility principle (compare my previous mail)
> and thus should be avoided.
>
> Are there other opinions concerning this topic?
> I'd like to finish the discussion soon and move on to the voting phase.

I think there has been a lack of discussion about why this is desired.
For me, it's always been implementing certain kinds of iterators that
wrap arrays. This means that functions which return both the key and
value are optimal for me. As I already outlined the functions which
return the key-value pair are the most general and do result in clean
code without drawbacks, at least for this use-case.

Some people do not like this idea. One potential implication this that
maybe their use-case is not the same as mine. What use-cases do other
people have for this? Why are you wanting to grab the first or last
value? What data structure or algorithm is this a bigger part of?

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic