Re: ArrayAccess and array_key_exists function

From: Date: Tue, 20 Feb 2024 13:21:57 +0000
Subject: Re: ArrayAccess and array_key_exists function
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-122442@lists.php.net to get a copy of this message
On Mon, Feb 19, 2024 at 1:35 PM Ondřej Mirtes <ondrej@mirtes.cz> wrote: > > Hello everyone, > I was recently surprised that ArrayAccess does not work with array_key_exists() function. > > I am aware that ArrayAccess objects cannot be made to work with many array functions because it > does not provide a way to iterate over its keys, you can only ask for and set specific previously > known keys. > > But it could be made to work with array_key_exists(), because it already works with isset() and > there’s a direct method that could be used for this - offsetExists(). > > The use case I have in mind is that sometimes libraries that originally use “array” in > return types want to switch to objects and they make these objects to implement ArrayAccess, for > maximising the backward compatibility with the old version. This mostly works, except for > array_key_exists(). > > Do you think we could add support for ArrayAccess objects in the 2nd parameter of > array_key_exists() function? > > Thank you. > > Ondřej Mirtes I'd love to see all array_* functions accept iterators/objects instead of only just arrays. Yes, I know the name says "array" but often we just mean "do this operation on this thing that looks enough like an array for now." Robert Landers Software Engineer Utrecht NL

« previous php.internals (#122442) next »