12345678910111213141516171819202122232425262728293031 |
- --TEST--
- Ensure fix to bug45622 doesn't cause __isset() to be called when ArrayObject::ARRAY_AS_PROPS is used.
- --FILE--
- <?php
- class UsesMagic extends ArrayObject {
- function __get($n) { echo "In " . __METHOD__ . "!\n"; }
- function __set($n, $v) { echo "In " . __METHOD__ . "!\n"; }
- function __isset($n) { echo "In " . __METHOD__ . "!\n"; }
- function __unset($n) { echo "In " . __METHOD__ . "!\n"; }
- }
- $ao = new UsesMagic(array(), ArrayObject::ARRAY_AS_PROPS);
- echo "Doesn't trigger __get.\n";
- echo $ao->prop1;
- echo "Doesn't trigger __set.\n";
- $ao->prop2 = 'foo';
- echo "Doesn't trigger __unset.\n";
- unset($ao->prop3);
- echo "Shouldn't trigger __isset.\n";
- isset($ao->prop4);
- ?>
- --EXPECTF--
- Doesn't trigger __get.
- Warning: Undefined array key "prop1" in %s on line %d
- Doesn't trigger __set.
- Doesn't trigger __unset.
- Shouldn't trigger __isset.
|