|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2008-02-17 19:08 UTC] johannes@php.net
[2008-02-18 16:19 UTC] elias at adaptiveinstance dot org
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 03:00:01 2025 UTC |
Description: ------------ __set_state can't assign to inherited private properties but creates an new dynamic property. Reproduce code: --------------- class A { private $foo = 'foo'; public static function __set_state($state) { $a = new A(); $a->foo = 'bar'; return $a; } } class B extends A { public static function __set_state($state) { $b = new B(); $b->foo = 'bar'; return $b; } } $a = A::__set_state(array()); $b = B::__set_state(array()); var_dump($a, $b); Expected result: ---------------- object(A)#1 (1) { ["foo":"A":private]=> string(3) "bar" } object(B)#2 (2) { ["foo":"A":private]=> string(3) "bar" } Actual result: -------------- object(A)#1 (1) { ["foo":"A":private]=> string(3) "bar" } object(B)#2 (2) { ["foo":"A":private]=> string(3) "foo" ["foo"]=> string(3) "bar" }