Re: array_key_exists with float keys (bug #60039)

From: Date: Fri, 18 Nov 2011 16:37:08 +0000
Subject: Re: array_key_exists with float keys (bug #60039)
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-56400@lists.php.net to get a copy of this message
2011/11/18 Etienne Kneuss <colder@php.net>: > Hi, > > On Fri, Nov 18, 2011 at 16:41, Nikita Popov <nikita.ppv@googlemail.com> wrote: >> *push* >> >> On Fri, Nov 11, 2011 at 10:40 PM, Nikita Popov >> <nikita.ppv@googlemail.com> wrote: >>> Hi internals! >>> >>> I'd like to get some attention to bug #60039 [1]. It is about the >>> behavior of array_key_exists with "unusual" keys like floats, bools >>> and resources. Currently array_key_exists throws a warning if such a >>> key is passed. isset() on the other hand (and native array accesses in >>> general) treat them as valid keys, with floats being converted to ints >>> and bools and resources treated just like ints. >>> >>> I would like to see array_key_exists behave consistent with >>> isset($array[$key]) / $array[$key]. The bug has a patch attached that >>> does this. >>> >>> I don't think that this change has any BC impact as it only *removes* warnings. > > To me, it feels similar to the Array->String conversion: > It is one of those implicit conversions that is almost always indicating a bug. > > Therefore I would rather have both throw warnings than none of them. > > So -1 from me for the proposed unification. > Same opinion here. I do prefer not having such implict data repair. -- Regards, Felipe Pena

« previous php.internals (#56400) next »