Re: Rethinking 64bit sizes and PHP-NG

From: Date: Sat, 17 May 2014 19:38:01 +0000
Subject: Re: Rethinking 64bit sizes and PHP-NG
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-74292@lists.php.net to get a copy of this message
On Sat, 17 May 2014 23:11:13 +0400, Nikita Popov <nikita.ppv@gmail.com> wrote:

On Sat, May 17, 2014 at 9:01 PM, Nikita Nefedov <inefedor@gmail.com> wrote:
Hey, First thank you for arranging all this points. I just wanted to ask: could we also make nNextFreeElement be unsigned? Because with your proposal it >>would be possible to overflow it with the code like this: $array[pow(2, 32) + 1] = 123; (if I understand >>it correctly) And besides that we can't have negative keys anyway.
PHP arrays store integral keys larger than PHP_INT_MAX as a string rather than an integer. Auto->incrementing does not work past that point. If you write something like this... $array[PHP_INT_MAX] = 42; $array[] = 43; ...you'll receive an error (this is intentional). You get that error because the code explicitly makes >sure that nNextFreeElement can never overflow. (Here is an example of such an overflow check: http://>lxr.php.net/xref/PHP_TRUNK/Zend/zend_hash.c#435). Nikita
Ah well, my fault didn't see it :)

Thread (34 messages)

« previous php.internals (#74292) next »