On Sun, 5 Apr 2026 at 10:13, Hans Krentel <[email protected]> wrote:
> > On Saturday 04 April 2026 16:06:21 (+02:00), Barel wrote: > > > Hi, > > > > I would like to open the discussion on my proposal to add two small, > > focused array functions for retrieving and checking nested array elements > > using dot notation. > > > > This is the link to the RFC: > > https://wiki.php.net/rfc/array_get_and_array_has > > > > This is the link to the proposed implementation: > > https://github.com/php/php-src/pull/21637 > > > > Thanks!! > > Thank you very much! That’s very interesting, so I have to ask right away: > Is there a specific reason to limit this to strings, integers, and null for > arrays, rather than also allowing arrays or iterables? > > This reminds me of JSON Pointers (RFC 6901), which can usually be easily > mapped as an iterable with string keys, which can then be accessed via the > holder variable, similar to the foreach example you already describe in > your RFC. > > If these two functions supported passing an array/iterable with the > traversal keys as a second parameter, this would be advantageous, since the > JSON pointer would then not need to be recoded into dot notation, but only > (if not already done) sliced and passed as an array as the second parameter. > > That's why I'm asking. > > Interestingly, JSON Pointer solves the “null problem” by prefixing the > zero or more reference tokens (keys) with a slash ‘/’, and it supports all > seven types of JSON values without limiting itself to just JSON arrays or > objects. This is just food for thought: array_... are clearly array > functions, so this “restriction” is likely intentional. In PHP, however, I > can also imagine iterables that resemble what you’ve already described in > your RFC, and from there it’s not far to the holder object we see in JSON > and JSON Pointer. So please don’t confuse my “request” regarding > arrays/iterables with the first parameter; it’s simply about passing the > key as a keys, which is a small improvement over dot notation. > > With arrays in PHP, users will likely prefer the non-standard, more custom > dot notation, and that’s perfectly fine. I saw many people asking for this > in the early days of Stack Overflow, and if Symfony/Laravel have it as > well, that’s just another strong indication of such a preference. > > Thanks again for your RFC > > > --hakre > > P.S. Work on the RFC documentation for JSON Path finally began in 2020, > and it was published in February 2024. The standard has its roots in PHP > and JavaScript, and perhaps it’s time for PHP to expand its standard > library with such features at the same pace we did with JSON. Your RFC > seems well-suited for this purpose. Thanks again. > Thanks for your comments. Someone else already suggested allowing arrays for the $key parameter and I am considering it, I think it will probably be a good addition Cheers Carlos
