#45959 [Opn]: Object to array conversion leads to weird behaviour

From: Date: Tue, 04 Nov 2008 08:18:09 +0000
Subject: #45959 [Opn]: Object to array conversion leads to weird behaviour
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-1310@lists.php.net to get a copy of this message
 ID:               45959
 User updated by:  manchokapitancho at gmail dot com
 Reported By:      manchokapitancho at gmail dot com
 Status:           Open
 Bug Type:         Documentation problem
 Operating System: windows xp
 PHP Version:      5.2.6
 New Comment:

Isn't this problem quite a serious issue since JSON data transfer
mechanism is growing in popularity and manipulating a JavaScript (or
JSON) key/value object as a PHP array is a common use case?


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

[2008-11-03 21:56:41] felipe@php.net

Fixing that implies a perfomance decrease, hence the better seems be
keep it as an known issue, but documented.

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

[2008-08-31 13:53:10] manchokapitancho at gmail dot com

Also array_key_exists returns false instead of true.

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

[2008-08-31 13:52:29] manchokapitancho at gmail dot com

Description:
------------
Object to array conversion leads to weird behaviour - access to array
members is not possible.

Reproduce code:
---------------
$input = json_decode
('{"is_paid":{"0":"4","1":"3"},"is_bank_transfer":{"4":"1"}}');
$arr = ((array)$input->is_bank_transfer);

var_dump($arr);
var_dump($arr[4]);
var_dump($arr['4']);

$keys = array_keys ($arr);
var_dump($keys);
var_dump($arr[$keys[0]]);

Expected result:
----------------
array(1) {
  ["4"]=>
  string(1) "1"
}
string(1) "1"
string(1) "1"
array(1) {
  [0]=>
  string(1) "4"
}
string(1) "1"

Actual result:
--------------
array(1) {
  ["4"]=>
  string(1) "1"
}
NULL
NULL
array(1) {
  [0]=>
  string(1) "4"
}
NULL




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


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



Thread (4 messages)

« previous php.doc.bugs (#1310) next »