diff options
Diffstat (limited to 'Zend/tests/bug52193.phpt')
-rw-r--r-- | Zend/tests/bug52193.phpt | 78 |
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) +} |