On 07/07/2025 21:19, Theodore Brown wrote:
> On Mon, July 7, 2025 at 11:03 Niels Dossche wrote:
>> You're allowed to do $array[null], $array[3.14], etc... and the key will coerce.
>> I expect array_key_exists() to behave the same way as keys on array accesses do.
>
> I'm confused what you mean as well. The deprecation is for both array offsets and when
> calling array_key_exists().
> So $array[null] should output a deprecation just like the function, and there isn't any
> inconsistency.
Okay now I understand. I misread the description and missed the word "and".
However, I still need some clarifications:
From the RFC:
> Notably an offset of null is type juggled to the empty string "" rather than 0,
> contrasting with how values of type bool, float, and resources are cast to int.
Why is this wrong? Why must it get cast to 0?
From the RFC:
> Which is even more surprising that the other operators that accept both string and int are
> bitwise operators and they throw a type error when attempting to use null with a value of type
> string.
I tried understanding this sentence multiple times but I just don't understand what it's
saying.
Even presuming that the first "that" should maybe be "than", I still don't
understand it.
Kind regards
Niels