Re: array_key_exists with float keys (bug #60039)
| From: | Felipe Pena | 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