arrayObject_setFlags_basic2.phpt 603 B

1234567891011121314151617181920212223242526272829303132
  1. --TEST--
  2. SPL: Ensure access to non-visible properties falls back to dimension access with ArrayObject::ARRAY_AS_PROPS.
  3. --FILE--
  4. <?php
  5. class C extends ArrayObject {
  6. private $x = 'secret';
  7. static function go($c) {
  8. var_dump($c->x);
  9. }
  10. }
  11. $c = new C(array('x'=>'public'));
  12. $c->setFlags(ArrayObject::ARRAY_AS_PROPS);
  13. C::go($c);
  14. var_dump($c->x);
  15. $c->setFlags(0);
  16. C::go($c);
  17. var_dump($c->x);
  18. ?>
  19. --EXPECTF--
  20. string(6) "secret"
  21. string(6) "public"
  22. string(6) "secret"
  23. Fatal error: Uncaught Error: Cannot access private property C::$x in %s:19
  24. Stack trace:
  25. #0 {main}
  26. thrown in %s on line 19