summaryrefslogtreecommitdiff
path: root/ext/spl/tests/bug32134.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/tests/bug32134.phpt')
-rw-r--r--ext/spl/tests/bug32134.phpt48
1 files changed, 48 insertions, 0 deletions
diff --git a/ext/spl/tests/bug32134.phpt b/ext/spl/tests/bug32134.phpt
new file mode 100644
index 0000000..5a880b3
--- /dev/null
+++ b/ext/spl/tests/bug32134.phpt
@@ -0,0 +1,48 @@
+--TEST--
+Bug #32134 (Overloading offsetGet/offsetSet)
+--FILE--
+<?php
+
+class myArray extends ArrayIterator
+{
+
+ public function __construct($array = array())
+ {
+ parent::__construct($array);
+ }
+
+ public function offsetGet($index)
+ {
+ static $i = 0;
+ echo __METHOD__ . "($index)\n";
+ if (++$i > 3) exit(1);
+ return parent::offsetGet($index);
+ }
+
+ public function offsetSet($index, $newval)
+ {
+ echo __METHOD__ . "($index,$newval)\n";
+ return parent::offsetSet($index, $newval);
+ }
+
+}
+
+$myArray = new myArray();
+
+$myArray->offsetSet('one', 'one');
+var_dump($myArray->offsetGet('one'));
+
+$myArray['two'] = 'two';
+var_dump($myArray['two']);
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECT--
+myArray::offsetSet(one,one)
+myArray::offsetGet(one)
+string(3) "one"
+myArray::offsetSet(two,two)
+myArray::offsetGet(two)
+string(3) "two"
+===DONE===