bug45622b.phpt 870 B

12345678910111213141516171819202122232425262728293031
  1. --TEST--
  2. Ensure fix to bug45622 doesn't cause __isset() to be called when ArrayObject::ARRAY_AS_PROPS is used.
  3. --FILE--
  4. <?php
  5. class UsesMagic extends ArrayObject {
  6. function __get($n) { echo "In " . __METHOD__ . "!\n"; }
  7. function __set($n, $v) { echo "In " . __METHOD__ . "!\n"; }
  8. function __isset($n) { echo "In " . __METHOD__ . "!\n"; }
  9. function __unset($n) { echo "In " . __METHOD__ . "!\n"; }
  10. }
  11. $ao = new UsesMagic(array(), ArrayObject::ARRAY_AS_PROPS);
  12. echo "Doesn't trigger __get.\n";
  13. echo $ao->prop1;
  14. echo "Doesn't trigger __set.\n";
  15. $ao->prop2 = 'foo';
  16. echo "Doesn't trigger __unset.\n";
  17. unset($ao->prop3);
  18. echo "Shouldn't trigger __isset.\n";
  19. isset($ao->prop4);
  20. ?>
  21. --EXPECTF--
  22. Doesn't trigger __get.
  23. Warning: Undefined array key "prop1" in %s on line %d
  24. Doesn't trigger __set.
  25. Doesn't trigger __unset.
  26. Shouldn't trigger __isset.