Annotation of embedaddon/php/tests/classes/__set__get_005.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: ZE2 __set() and __get()
3: --SKIPIF--
4: <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
5: --FILE--
6: <?php
7: class Test
8: {
9: protected $x;
10:
11: function __get($name) {
12: echo __METHOD__ . "\n";
13: if (isset($this->x[$name])) {
14: return $this->x[$name];
15: }
16: else
17: {
18: return NULL;
19: }
20: }
21:
22: function __set($name, $val) {
23: echo __METHOD__ . "\n";
24: $this->x[$name] = $val;
25: }
26: }
27:
28: class AutoGen
29: {
30: protected $x;
31:
32: function __get($name) {
33: echo __METHOD__ . "\n";
34: if (!isset($this->x[$name])) {
35: $this->x[$name] = new Test();
36: }
37: return $this->x[$name];
38: }
39:
40: function __set($name, $val) {
41: echo __METHOD__ . "\n";
42: $this->x[$name] = $val;
43: }
44: }
45:
46: $foo = new AutoGen();
47: $foo->bar->baz = "Check";
48:
49: var_dump($foo->bar);
50: var_dump($foo->bar->baz);
51:
52: ?>
53: ===DONE===
54: --EXPECTF--
55: AutoGen::__get
56: Test::__set
57: AutoGen::__get
58: object(Test)#%d (1) {
59: ["x":protected]=>
60: array(1) {
61: ["baz"]=>
62: string(5) "Check"
63: }
64: }
65: AutoGen::__get
66: Test::__get
67: string(5) "Check"
68: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>