diff options
| author | Marcus Boerger <helly@php.net> | 2005-03-07 01:43:02 +0000 |
|---|---|---|
| committer | Marcus Boerger <helly@php.net> | 2005-03-07 01:43:02 +0000 |
| commit | 37e2436b6fcf66fcce9bd96269fafac9dd98f053 (patch) | |
| tree | 10c7a15d06d8cd4bf73504976ffdb5c1c89311f7 | |
| parent | 7bbbfa3f15e6f4e03a1df7d3ba2b271e673f7068 (diff) | |
| download | php-git-37e2436b6fcf66fcce9bd96269fafac9dd98f053.tar.gz | |
- Add new test
| -rwxr-xr-x | tests/classes/__set__get_005.phpt | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/classes/__set__get_005.phpt b/tests/classes/__set__get_005.phpt new file mode 100755 index 0000000000..1a55334060 --- /dev/null +++ b/tests/classes/__set__get_005.phpt @@ -0,0 +1,68 @@ +--TEST-- +ZE2 __set() and __get() +--SKIPIF-- +<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> +--FILE-- +<?php +class Test +{ + protected $x; + + function __get($name) { + echo __METHOD__ . "\n"; + if (isset($this->x[$name])) { + return $this->x[$name]; + } + else + { + return NULL; + } + } + + function __set($name, $val) { + echo __METHOD__ . "\n"; + $this->x[$name] = $val; + } +} + +class AutoGen +{ + protected $x; + + function __get($name) { + echo __METHOD__ . "\n"; + if (!isset($this->x[$name])) { + $this->x[$name] = new Test(); + } + return $this->x[$name]; + } + + function __set($name, $val) { + echo __METHOD__ . "\n"; + $this->x[$name] = $val; + } +} + +$foo = new AutoGen(); +$foo->bar->baz = "Check"; + +var_dump($foo->bar); +var_dump($foo->bar->baz); + +?> +===DONE=== +--EXPECTF-- +AutoGen::__get +Test::__set +AutoGen::__get +object(Test)#%d (1) { + ["x:protected"]=> + array(1) { + ["baz"]=> + string(5) "Check" + } +} +AutoGen::__get +Test::__get +string(5) "Check" +===DONE=== |
