1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- --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===
|