#41095 [Opn->Bgs]: array conversion to object
| From: | johannes@php.net | Date: | Sun, 15 Apr 2007 17:46:47 +0000 |
| Subject: | #41095 [Opn->Bgs]: array conversion to object | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-111514@lists.php.net to get a copy of this message | ||
ID: 41095
Updated by: johannes@php.net
Reported By: mazsolt at yahoo dot com
-Status: Open
+Status: Bogus
Bug Type: Class/Object related
Operating System: Win
PHP Version: 5.2.1
New Comment:
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
$obj->{0} should help. See documentation for more information.
Previous Comments:
------------------------------------------------------------------------
[2007-04-15 17:19:39] mazsolt at yahoo dot com
Description:
------------
I tried to convert an array, with integer keys, to an object. The
problem seems to be that conversion is done, but the object's elements
can't be called by the script.
$obj = (object)array(1,2,3);
var_dump($obj) returns: object(stdClass)#1 (3) { [0]=> int(1) [1]=>
int(2) [2]=> int(3)
var_export($obj) returns: stdClass::__set_state(array( ))
OK, the conversion is done, but objects don't support $obj->0 property
access (property names should be valid php identifiers).
When it's not a bug, is there a way to call that property?
Except the object iteration pattern? I consulted some forums, but
nowhere have got an answer.
Reproduce code:
---------------
$obj = (object)array(1,2,3);
// it works
foreach($obj as $key => $value) {
echo "$key => $value";
}
// doesn't work
echo $obj->0;
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=41095&edit=1