Annotation of embedaddon/php/tests/classes/__set__get_005.phpt, revision 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>