Array behaviour change intentional?

php.internals

Lars Torben Wilson

23 years ago
Hi there, It seems that array appending has changed wrt negative indices. I had just documented the new behaviour but now I'm not entirely sure whether I've just documented an unintentional change. Is this new behaviour what is desired (i.e. skipping straight from some negative key to 0 when appending with $arr[] = <expr>). Thanks for any insight, Torben Test script: <?php $arr[-5] = "minus five"; $arr[] = "minus four"; var_dump($arr); ?> Output PHP 4.2.1: array(2) { [-5]=> string(10) "minus five" [-4]=> string(10) "minus four" } Output PHP 4.3.2: array(2) { [-5]=> string(10) "minus five" [0]=> string(10) "minus four" }
-- Torben Wilson <torben@php.net> +1.604.709.0506 http://www.thebuttlesschaps.com http://www.inflatableeye.com http://www.hybrid17.com http://www.themainonmain.com -----==== Boycott Starbucks! http://www.haidabuckscafe.com ====-----

Jani Taskinen

23 years ago
On Sat, 21 Jun 2003, Lars Torben Wilson wrote:
>Hi there, > >It seems that array appending has changed wrt negative indices. I had >just documented the new behaviour but now I'm not entirely sure whether >I've just documented an unintentional change. Is this new behaviour what >is desired (i.e. skipping straight from some negative key to 0 when >appending with $arr[] = <expr>). > > > >Thanks for any insight, > > >Torben > > >Test script: ><?php >$arr[-5] = "minus five"; >$arr[] = "minus four"; >var_dump($arr); >?> > > >Output PHP 4.2.1: >array(2) { > [-5]=> > string(10) "minus five" > [-4]=> > string(10) "minus four" >}
Output PHP 4.2.3: array(2) { [-5]=> string(10) "minus five" [-4]=> string(10) "minus four" } Output PHP 4.3.1: array(2) { [-5]=> string(10) "minus five" [0]=> string(10) "minus four" }
> >Output PHP 4.3.2: >array(2) { > [-5]=> > string(10) "minus five" > [0]=> > string(10) "minus four" >}
Seems to have been changed in between 4.2.3 and 4.3.0. There is/was some bug reports about this too, iirc. Not very critical, I don't think there are that many scripts using this? --Jani

Lars Torben Wilson

23 years ago
On Tue, 2003-06-24 at 08:35, Jani Taskinen wrote:
> On Sat, 21 Jun 2003, Lars Torben Wilson wrote: > > >Hi there, > > > >It seems that array appending has changed wrt negative indices. I had > >just documented the new behaviour but now I'm not entirely sure whether > >I've just documented an unintentional change. Is this new behaviour what > >is desired (i.e. skipping straight from some negative key to 0 when > >appending with $arr[] = <expr>).
> Seems to have been changed in between 4.2.3 and 4.3.0. > There is/was some bug reports about this too, iirc. > > Not very critical, I don't think there are that many scripts > using this? > > --Jani
Probably not--but there are enough for people to have noticed and complained. At the very least it's hard to document the correct behaviour. :) Essentially I just need to know what to write in the docs, because at the moment we don't know what the intended behaviour is. Should I just write that the behaviour of negative indices is undefined, as you appear to be implying (i.e. unimportant and therefore possibly changing at random?)
-- Torben Wilson <torben@php.net> +1.604.709.0506 http://www.thebuttlesschaps.com http://www.inflatableeye.com http://www.hybrid17.com http://www.themainonmain.com -----==== Boycott Starbucks! http://www.haidabuckscafe.com ====-----