#45959 [Asn->Opn]: Object to array conversion leads to weird behaviour
| From: | felipe@php.net | Date: | Mon, 03 Nov 2008 21:56:41 +0000 |
| Subject: | #45959 [Asn->Opn]: Object to array conversion leads to weird behaviour | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-1309@lists.php.net to get a copy of this message | ||
ID: 45959
Updated by: felipe@php.net
Reported By: manchokapitancho at gmail dot com
-Status: Assigned
+Status: Open
-Bug Type: Scripting Engine problem
+Bug Type: Documentation problem
Operating System: windows xp
PHP Version: 5.2.6
Assigned To: felipe
New Comment:
Fixing that implies a perfomance decrease, hence the better seems be
keep it as an known issue, but documented.
Previous Comments:
------------------------------------------------------------------------
[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