summaryrefslogtreecommitdiff
path: root/Zend/tests/bug64979.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/tests/bug64979.phpt')
-rw-r--r--Zend/tests/bug64979.phpt30
1 files changed, 30 insertions, 0 deletions
diff --git a/Zend/tests/bug64979.phpt b/Zend/tests/bug64979.phpt
new file mode 100644
index 0000000000..5bc8e5a6ab
--- /dev/null
+++ b/Zend/tests/bug64979.phpt
@@ -0,0 +1,30 @@
+--TEST--
+Bug #64979 (Wrong behavior of static variables in closure generators)
+--FILE--
+<?php
+
+function new_closure_gen() {
+ return function() {
+ static $foo = 0;
+ yield ++$foo;
+ };
+}
+
+$closure1 = new_closure_gen();
+$closure2 = new_closure_gen();
+
+$gen1 = $closure1();
+$gen2 = $closure1();
+$gen3 = $closure2();
+
+foreach (array($gen1, $gen2, $gen3) as $gen) {
+ foreach ($gen as $val) {
+ var_dump($val);
+ }
+}
+
+?>
+--EXPECT--
+int(1)
+int(2)
+int(1)