Hi Rasmus,

----- Original Message -----
From: "Rasmus Lerdorf"
Sent: Thursday, March 19, 2009

So, what is the final conclusion on this one?  Are we at a combination
of Matt's and Dmitry's patches here?

I think we definitely need to fix this even in the 5.2 branch and get it
back to 5.1.x and earlier behavior.  I consider it a bug that:

$arr[3500000000] = 'blah';
print_r($arr);

results in:

[-2147483648] => blah

if someone has written brand new 5.2-specific code that relies on this
weird behavior, then we will just have to bite the bullet and break that
code.  It is way more likely that people are relying on the earlier
behavior and will end up with subtle problems in 5.2.  I just had
someone at Yahoo get bitten by this when they upgraded from 5.1.x to 5.2.x.

This thread is about conversion of *numeric string* keys to int/long, rather than double conversion in your example. Bug #45877's behavior has been around forever I think until the fix a couple days ago (5.2 hasn't been changed).

With the conversion behavior you're talking about, it sounds like you want the "double to long conversion change" thread. [1] :-) A change was made there over a year ago in 5.3+, and I've been wondering about what should be expected and how to make that expected behavior consistent across platforms. All details are in that message or the linked ones.

However, nothing has been changed in a 5.2.x release (there was some partial backport shortly before getting reverted). If you noticed a change in 5.2.x, perhaps it was platform related?

[1] http://marc.info/?l=php-internals&m=123704111325725&w=2

-Rasmus

- Matt

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to