Object to array conversion oddity
- From: marcus@xxxxxxxxxxxxxxxxxx (Marcus Bointon)
- Date: Sat, 23 Sep 2006 15:40:25 +0100
A simple class like this:
class Myclass() {
public $field1 = '';
private $field2 = '';
public function __sleep() {
return array('field1', 'field2');
}
}
$myclass = new Myclass;
If I var_dump this, I get:
object(Myclass)#6 (2) {
["field1"]=>
string(0) ""
["field2:private"]=>
string(0) ""
}
If I coerce this to an array:
$arr = (array)$myclass;
the properties change names in a most unhelpful way:
array(2) {
["field1"]=>
string(0) ""
["Myclassfield2"]=>
string(0) ""
}
The docs (http://www.php.net/manual/en/language.types.array.php) say:
"If you convert an object to an array, you get the properties (member variables) of that object as the array's elements. The keys are the member variable names."
It seems that's not quite true.
How can I stop it doing this? Looks a bit buggy to me.
Marcus
--
Marcus Bointon
Synchromedia Limited: Creators of http://www.smartmessages.net/
marcus@xxxxxxxxxxxxxxxxxx | http://www.synchromedia.co.uk/
.
- Follow-Ups:
- Re: [PHP] Object to array conversion oddity
- From: Ray Hauge
- Re: [PHP] Object to array conversion oddity
- Prev by Date: Re: [PHP] libcurl (cookies across cURL session). . .?
- Next by Date: Re: [PHP] Object to array conversion oddity
- Previous by thread: Re: [PHP] libcurl (cookies across cURL session). . .?
- Next by thread: Re: [PHP] Object to array conversion oddity
- Index(es):
Relevant Pages
|
Loading