diff options
Diffstat (limited to 'Zend/tests/bug30889.phpt')
-rw-r--r-- | Zend/tests/bug30889.phpt | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Zend/tests/bug30889.phpt b/Zend/tests/bug30889.phpt new file mode 100644 index 000000000..4578516a4 --- /dev/null +++ b/Zend/tests/bug30889.phpt @@ -0,0 +1,31 @@ +--TEST--
+Bug #30889 Conflict between __get/__set and ++ operator
+--FILE--
+<?php
+class overloaded
+{
+ private $values;
+ function __construct()
+ {
+ $this->values = array('a' => 0);
+ }
+ function __set($name, $value)
+ {
+ print "set $name = $value ($name was ".$this->values[$name].")\n";
+ $this->values[$name] = $value;
+ }
+ function __get($name)
+ {
+ print "get $name (returns ".$this->values[$name].")\n";
+ return $this->values[$name];
+ }
+}
+$test = new overloaded();
+$test->a++; // __get(), then __set()
+++$test->a;
+?>
+--EXPECT--
+get a (returns 0)
+set a = 1 (a was 0)
+get a (returns 1)
+set a = 2 (a was 1)
|