bug73663.phpt 818 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. --TEST--
  2. Bug #73663 ("Invalid opcode 65/16/8" occurs with a variable created with list())
  3. --FILE--
  4. <?php
  5. function change(&$ref) {
  6. $ref = range(1, 10);
  7. return;
  8. }
  9. $func = function (&$ref) {
  10. return change($ref);
  11. };
  12. $array = [1];
  13. var_dump(list($val) = $array); // NG: Invalid opcode
  14. change(list(&$val) = $array);
  15. var_dump($array);
  16. $array = [1];
  17. $func(list(&$val) = $array);
  18. var_dump($array);
  19. ?>
  20. --EXPECT--
  21. array(1) {
  22. [0]=>
  23. int(1)
  24. }
  25. array(10) {
  26. [0]=>
  27. int(1)
  28. [1]=>
  29. int(2)
  30. [2]=>
  31. int(3)
  32. [3]=>
  33. int(4)
  34. [4]=>
  35. int(5)
  36. [5]=>
  37. int(6)
  38. [6]=>
  39. int(7)
  40. [7]=>
  41. int(8)
  42. [8]=>
  43. int(9)
  44. [9]=>
  45. int(10)
  46. }
  47. array(10) {
  48. [0]=>
  49. int(1)
  50. [1]=>
  51. int(2)
  52. [2]=>
  53. int(3)
  54. [3]=>
  55. int(4)
  56. [4]=>
  57. int(5)
  58. [5]=>
  59. int(6)
  60. [6]=>
  61. int(7)
  62. [7]=>
  63. int(8)
  64. [8]=>
  65. int(9)
  66. [9]=>
  67. int(10)
  68. }