On Wed, Oct 18, 2023 at 12:04 PM Robert Landers <landers.rob...@gmail.com>
wrote:

> > I completely understand what you're saying and I don't disagree with the
> thought process. What I disagree with is your statement that you will
> always use array_first() together with array_key_first(). When talking
> about standard lists (indexed from 0 to upper-bound), array_first() is an
> order of magnitude more useful than array_key_first() as we always know
> what the first key is: 0.
>
> This is simply not true, 0 is not always the first key in a list,
> especially after filtering it. Hence there is a need for this function
> in the first place.
>

To give back on the same format, "this is simply not true". Here are the
facts:

- https://www.php.net/manual/en/function.array-is-list.php
- Determines if the given array is a list. An array is considered a list if
its keys consist of consecutive numbers from 0 to count($array)-1."
- https://3v4l.org/JZS9N#v8.2.11

At this point I have nothing else to add to this conversation. You will
either accept that it is actually possible to use `array_first()` without
using `array_key_first()` or you'll keep believing that your knowledge and
experience is the only correct one.

I believe my reservations have been registered, I would not like to have
`array_first()` behave in a non-obvious way (i.e. involving array $key)
because it's useful for Fibers users. I believe that writing your own
wrapper that always returns key and value simultaneously is easy and
straight-forward and may even make it into the core in the future. Rather
than trying to solve deep convoluted issues on version 1, I believe PHP
could introduce the simplest version of the function first and later on add
an array_first_key_value() in the future if needed.

In fact, I encourage you to propose an RFC for `array_first_key_value()` as
a solution for the problem you're raising.

-- 
Marco Deleu

Reply via email to