Bug #63007 [Nab]: json functions corrupt arrayindizes

From: Date: Tue, 04 Sep 2012 14:37:23 +0000
Subject: Bug #63007 [Nab]: json functions corrupt arrayindizes
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-173165@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=63007&edit=1

 ID:                 63007
 Updated by:         laruence@php.net
 Reported by:        janfili+phpbugs at gmail dot com
 Summary:            json functions corrupt arrayindizes
 Status:             Not a bug
 Type:               Bug
 Package:            JSON related
 Operating System:   Linux ubuntu1010
 PHP Version:        5.3.16
 Block user comment: N
 Private report:     N

 New Comment:

....
would you read my comment clearly(or the comment of  scottmac@php.net in #51951)?

as I said, the key has become to a string...

I knew what you are saying, but as I said, it's a knew behavior(or knew issue)...


Previous Comments:
------------------------------------------------------------------------
[2012-09-04 14:16:03] janfili+phpbugs at gmail dot com

Would you please read my comments carefully again?

as i mentioned in earlier comments

it is NOT possible to get the values using

1. var_dump($array[1]);

or

2. var_dump($array['1']);

or

3. var_dump($array["1"]);

or

4. $k = array_keys($array);
   var_dum($array[$k[0]]);

All of these options will result into undefined index.

Even though the keys we convertet to strings, you cant get the values by using the string key. You
cant even get the value if you get the keys by array_keys() first. Before posting something about
string keys vs int keys now, just take a close look at 4.

best regards

------------------------------------------------------------------------
[2012-09-04 13:17:45] laruence@php.net

they are the same....

the array's key 1 has become to string "1"..

------------------------------------------------------------------------
[2012-09-04 11:39:27] janfili+phpbugs at gmail dot com

not similar to https://bugs.php.net/bug.php?id=51915

51915 mentions that the indexes become strings, and that is the case of course through json
en/decoding.

The bug described in this ticket is that the elements belonging to these keys are not retrievable
anymore. 

even if you explicitly get the keys

$k = array_keys($array);
echo $array[$k[0]];

will result in undefined index. Reductio ad absurdum

------------------------------------------------------------------------
[2012-09-04 11:17:17] laruence@php.net

similar to https://bugs.php.net/bug.php?id=51915

------------------------------------------------------------------------
[2012-09-04 08:21:08] reeze dot xia at gmail dot com

Yes, it will not accessible anymore if you have property with string number.
since array handle keys different from objects.

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


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

    https://bugs.php.net/bug.php?id=63007


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


Thread (12 messages)

« previous php.bugs (#173165) next »