bug79683.phpt 502 B

1234567891011121314151617181920212223242526272829303132333435
  1. --TEST--
  2. Bug #79683: Fake reflection scope affects __toString()
  3. --FILE--
  4. <?php
  5. class A
  6. {
  7. private string $prop1 = '123';
  8. public function __toString()
  9. {
  10. return $this->prop1;
  11. }
  12. }
  13. class B
  14. {
  15. private string $prop2;
  16. }
  17. $b = new B();
  18. $reflector = new ReflectionClass($b);
  19. $property = $reflector->getProperty('prop2');
  20. $property->setAccessible(true);
  21. $property->setValue($b, new A());
  22. var_dump($b);
  23. ?>
  24. --EXPECT--
  25. object(B)#1 (1) {
  26. ["prop2":"B":private]=>
  27. string(3) "123"
  28. }