bug52193.phpt 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. --TEST--
  2. Bug #52193 (converting closure to array yields empty array)
  3. --FILE--
  4. <?php
  5. var_dump((array) 1);
  6. var_dump((array) NULL);
  7. var_dump((array) new stdclass);
  8. var_dump($h = (array) function () { return 2; });
  9. var_dump($h[0]());
  10. $i = function () use (&$h) {
  11. return $h;
  12. };
  13. var_dump($x = (array)$i);
  14. var_dump($y = $x[0]);
  15. var_dump($y());
  16. $items = range(1, 5);
  17. $func = function(){ return 'just a test'; };
  18. array_splice($items, 0 , 4, $func);
  19. var_dump($items);
  20. ?>
  21. --EXPECTF--
  22. array(1) {
  23. [0]=>
  24. int(1)
  25. }
  26. array(0) {
  27. }
  28. array(0) {
  29. }
  30. array(1) {
  31. [0]=>
  32. object(Closure)#%d (0) {
  33. }
  34. }
  35. int(2)
  36. array(1) {
  37. [0]=>
  38. object(Closure)#%d (1) {
  39. ["static"]=>
  40. array(1) {
  41. ["h"]=>
  42. &array(1) {
  43. [0]=>
  44. object(Closure)#%d (0) {
  45. }
  46. }
  47. }
  48. }
  49. }
  50. object(Closure)#%d (1) {
  51. ["static"]=>
  52. array(1) {
  53. ["h"]=>
  54. &array(1) {
  55. [0]=>
  56. object(Closure)#%d (0) {
  57. }
  58. }
  59. }
  60. }
  61. array(1) {
  62. [0]=>
  63. object(Closure)#%d (0) {
  64. }
  65. }
  66. array(2) {
  67. [0]=>
  68. object(Closure)#%d (0) {
  69. }
  70. [1]=>
  71. int(5)
  72. }