ID:               21918
 Updated by:       [EMAIL PROTECTED]
 Reported By:      messju at lammfellpuschen dot de
 Status:           Closed
 Bug Type:         Scripting Engine problem
 Operating System: *
 PHP Version:      4.3.3-RC3/5.0.0b2
 Assigned To:      zeev
 New Comment:

Well i didn't mean to shout or something like that :-)

I reopened the bug because the part of the fix removed was for
documentation consistency. And i didn't want to open a new bug on
this.

To be precise: "A key may be either an integer or a string. If a key is
the standard representation of an integer, it will be interpreted as
such (i.e. "8" will be interpreted as 8, while "08" will be interpreted
as "08"). There are no different indexed and associative array types in
PHP; there is only one array type, which can both contain integer and
string indices." (1)

The above is the exact purpose of this bug and is fixed now.

The inconsistency lies in this: "If you do not specify a key for a
given value, then the maximum of the integer indices is taken, and the
new key will be that maximum value + 1. If you specify a key that
already has a value assigned to it, that value will be overwritten."
(2)

While the documentation says: "As of PHP 4.3.0, the index generation
behaviour described above has changed. Now, if you append to an array
in which the current maximum key is negative, then the next key created
will be zero (0). Before, the new index would have been set to the
largest existing key + 1, the same as positive indices are." (3)

Since (1) and (2) were broken in PHP 4.3 i didn't really care about the
note (3). If we leave the things as they are now (1) throughtout (3)
match. However i like the behavior without (3) more since it is
consistent and more logically.




Previous Comments:
------------------------------------------------------------------------

[2003-08-13 04:18:46] [EMAIL PROTECTED]

Zeev is right about this being the wrong bug reopened, this is (still)
fixed in CVS.


------------------------------------------------------------------------

[2003-08-13 02:55:03] [EMAIL PROTECTED]

It's not 'broken' again, what I reverted had nothing to do with this
bug.  Look at the diff before you start shouting!

I'm still not sure if we'll keep the auto conversion for negative
numbers.  My preference is to fix the docs, since all sorts of other
notations don't work, and we have no intention on making them work
(e.g., $foo["+7"], $foo["3.5"], etc.



------------------------------------------------------------------------

[2003-08-12 18:45:55] [EMAIL PROTECTED]

Zeev could at least explain WHY he reverted the fix..


------------------------------------------------------------------------

[2003-08-12 15:46:46] [EMAIL PROTECTED]

Broken again

------------------------------------------------------------------------

[2003-08-11 15:15:35] [EMAIL PROTECTED]

This bug has been fixed in CVS.

In case this was a PHP problem, snapshots of the sources are packaged
every three hours; this change will be in the next snapshot. You can
grab the snapshot at http://snaps.php.net/.
 
In case this was a documentation problem, the fix will show up soon at
http://www.php.net/manual/.

In case this was a PHP.net website problem, the change will show
up on the PHP.net site and on the mirror sites in short time.
 
Thank you for the report, and for helping us make PHP better.



------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/21918

-- 
Edit this bug report at http://bugs.php.net/?id=21918&edit=1

Reply via email to