ID:               21918
 User updated by:  [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Verified
 Bug Type:         Arrays related
 Operating System: Linux
 PHP Version:      4.3.0/5.0.0
 New Comment:

I relied on http://www.php.net/manual/en/language.types.array.php

it states:

"A key is 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")."

so the keys should be casted to int, or it is a documentation-bug, or
"-1" is not a "standard representation of an integer".


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

[2003-01-29 00:57:01] [EMAIL PROTECTED]

<?php

$a = array(
 '-1' => '-1',
  '0' => '0',
  '1' => '1',
);

var_dump($a);

?>

Output:

array(3) {
  ["-1"]=>
  string(2) "-1"
  [0]=>
  string(1) "0"
  [1]=>
  string(1) "1"
}

(the '0' and '1' indexes are converted to integers..)
Not sure if this is actually expected behaviour. :)


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

[2003-01-29 00:39:34] [EMAIL PROTECTED]

The bug can be that it shouldn't cast positive numbers to string and
not that it should cast negative numbers to string.

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

[2003-01-29 00:31:41] [EMAIL PROTECTED]

Verified under PHP 4.3.0 with Zend Engine v1.3.0 and PHP 5.0.0-dev with
Zend Engine v2.0.0-dev.

It looks like '-1' isn't casted to int as it should.



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

[2003-01-28 04:58:13] [EMAIL PROTECTED]

<?php

$a = array(-1=>1,
           '-1'=>2,
           0=>3,
           '0'=>4,
           1=>5,
           '1'=>6
           );

print_r($a);

?>

produces:
Array
(
    [-1] => 1
    [-1] => 2
    [0] => 4
    [1] => 6
)


foreach (array_keys($a) as $key) echo $key, ': ', gettype($key), "\n";
produces:
-1: integer
-1: string
0: integer
1: integer

so it seems strings containing negative integers do not get converted
to
integers automagically but positive integers are.



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


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

Reply via email to