Annotation of embedaddon/php/tests/classes/bug63462.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test script to verify that magic methods should be called only once when accessing an unset property.
3: --CREDITS--
4: Marco Pivetta <ocramius@gmail.com>
5: --XFAIL--
6: Bug 63462 is not yet fixed
7: --FILE--
8: <?php
9: class Test {
10: public $publicProperty;
11: protected $protectedProperty;
12: private $privateProperty;
13:
14: public function __construct() {
15: unset(
16: $this->publicProperty,
17: $this->protectedProperty,
18: $this->privateProperty
19: );
20: }
21:
22: function __get($name) {
23: echo '__get ' . $name . "\n";
24: return $this->$name;
25: }
26:
27: function __set($name, $value) {
28: echo '__set ' . $name . "\n";
29: $this->$name = $value;
30: }
31:
32: function __isset($name) {
33: echo '__isset ' . $name . "\n";
34: return isset($this->$name);
35: }
36: }
37:
38: $test = new Test();
39:
40: $test->nonExisting;
41: $test->publicProperty;
42: $test->protectedProperty;
43: $test->privateProperty;
44: isset($test->nonExisting);
45: isset($test->publicProperty);
46: isset($test->protectedProperty);
47: isset($test->privateProperty);
48: $test->nonExisting = 'value';
49: $test->publicProperty = 'value';
50: $test->protectedProperty = 'value';
51: $test->privateProperty = 'value';
52:
53: ?>
54:
55: --EXPECTF--
56: __get nonExisting
57: Notice: Undefined index: nonExisting in %__set__get_006.php on line %d
58: __get publicProperty
59: Notice: Undefined index: publicProperty in %__set__get_006.php on line %d
60: __get protectedProperty
61: Notice: Undefined index: protectedProperty in %__set__get_006.php on line %d
62: __get privateProperty
63: Notice: Undefined index: privateProperty in %__set__get_006.php on line %d
64: __isset nonExisting
65: __isset publicProperty
66: __isset protectedProperty
67: __isset privateProperty
68: __set nonExisting
69: __set publicProperty
70: __set protectedProperty
71: __set privateProperty
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>