Skip to content

Private property in base class#91

@rlalak

Description

@rlalak

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions