]> granicus.if.org Git - php/commitdiff
- Add new test
authorMarcus Boerger <helly@php.net>
Mon, 7 Mar 2005 01:43:02 +0000 (01:43 +0000)
committerMarcus Boerger <helly@php.net>
Mon, 7 Mar 2005 01:43:02 +0000 (01:43 +0000)
tests/classes/__set__get_005.phpt [new file with mode: 0755]

diff --git a/tests/classes/__set__get_005.phpt b/tests/classes/__set__get_005.phpt
new file mode 100755 (executable)
index 0000000..1a55334
--- /dev/null
@@ -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===