summaryrefslogtreecommitdiff
path: root/Zend/tests/bug52193.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/tests/bug52193.phpt')
-rw-r--r--Zend/tests/bug52193.phpt78
1 files changed, 78 insertions, 0 deletions
diff --git a/Zend/tests/bug52193.phpt b/Zend/tests/bug52193.phpt
new file mode 100644
index 0000000000..b4e4b3aab9
--- /dev/null
+++ b/Zend/tests/bug52193.phpt
@@ -0,0 +1,78 @@
+--TEST--
+Bug #52193 (converting closure to array yields empty array)
+--FILE--
+<?php
+
+var_dump((array) 1);
+var_dump((array) NULL);
+var_dump((array) new stdclass);
+var_dump($h = (array) function () { return 2; });
+var_dump($h[0]());
+
+$i = function () use (&$h) {
+ return $h;
+};
+
+var_dump($x = (array)$i);
+var_dump($y = $x[0]);
+var_dump($y());
+
+$items = range(1, 5);
+$func = function(){ return 'just a test'; };
+
+array_splice($items, 0 , 4, $func);
+var_dump($items);
+
+?>
+--EXPECTF--
+array(1) {
+ [0]=>
+ int(1)
+}
+array(0) {
+}
+array(0) {
+}
+array(1) {
+ [0]=>
+ object(Closure)#1 (0) {
+ }
+}
+int(2)
+array(1) {
+ [0]=>
+ object(Closure)#2 (1) {
+ ["static"]=>
+ array(1) {
+ ["h"]=>
+ &array(1) {
+ [0]=>
+ object(Closure)#1 (0) {
+ }
+ }
+ }
+ }
+}
+object(Closure)#2 (1) {
+ ["static"]=>
+ array(1) {
+ ["h"]=>
+ &array(1) {
+ [0]=>
+ object(Closure)#1 (0) {
+ }
+ }
+ }
+}
+array(1) {
+ [0]=>
+ object(Closure)#1 (0) {
+ }
+}
+array(2) {
+ [0]=>
+ object(Closure)#3 (0) {
+ }
+ [1]=>
+ int(5)
+}