-
Notifications
You must be signed in to change notification settings - Fork 118
Closed
Description
When I serialize object which extends some base class with private property after unserialize I have default value for this property and extra field (with the same name) in not base class.
Classes
class TestBase
{
private $name = 'default';
public function getName()
{
return $this->name;
}
public function setName($name)
{
$this->name = $name;
}
}
class Test extends TestBase
{
}
Code
$test = new Test();
$test->setName('new-name');
var_dump($test, $test->getName());
$new_test = msgpack_unpack(msgpack_pack($test));
var_dump($new_test, $new_test->getName());
Output
object(Test)#579 (1) {
["name":"TestBase":private]=>
string(8) "new-name"
}
string(8) "new-name"
object(Test)#588 (2) {
["name":"TestBase":private]=>
string(7) "default"
["name"]=>
string(8) "new-name"
}
string(7) "default"
As you see method getName() return incorrect value in new object.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels