summaryrefslogtreecommitdiff
path: root/Zend/tests/bug30394.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/tests/bug30394.phpt')
-rwxr-xr-xZend/tests/bug30394.phpt30
1 files changed, 30 insertions, 0 deletions
diff --git a/Zend/tests/bug30394.phpt b/Zend/tests/bug30394.phpt
new file mode 100755
index 000000000..a979e0796
--- /dev/null
+++ b/Zend/tests/bug30394.phpt
@@ -0,0 +1,30 @@
+--TEST--
+Bug #30394 (Assignment operators yield wrong result with __get/__set)
+--FILE--
+<?php
+class Container
+{
+ public function __get( $what )
+ {
+ return $this->_p[ $what ];
+ }
+
+ public function __set( $what, $value )
+ {
+ $this->_p[ $what ] = $value;
+ }
+
+ private $_p = array();
+}
+
+$c = new Container();
+$c->a = 1;
+$c->a += 1;
+print $c->a; // --> 2
+
+print " - ";
+$c->a += max( 0, 1 );
+print $c->a; // --> 4 (!)
+?>
+--EXPECT--
+2 - 3