engine_assignExecutionOrder_006.phpt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. --TEST--
  2. Evaluation order during assignments.
  3. --FILE--
  4. <?php
  5. function i1() {
  6. echo "i1\n";
  7. return 0;
  8. }
  9. function i2() {
  10. echo "i2\n";
  11. return 0;
  12. }
  13. function i3() {
  14. echo "i3\n";
  15. return 0;
  16. }
  17. function i4() {
  18. echo "i4\n";
  19. return 0;
  20. }
  21. function i5() {
  22. echo "i5\n";
  23. return 0;
  24. }
  25. function i6() {
  26. echo "i6\n";
  27. return 0;
  28. }
  29. $a = array(array(0));
  30. $b = array(array(1));
  31. $c = array(array(2));
  32. $a[i1()][i2()] = ($b[i3()][i4()] = $c[i5()][i6()]);
  33. var_dump($a);
  34. var_dump($b);
  35. var_dump($c);
  36. $a[i1()][i2()] = $b[i3()][i4()] = -$c[i5()][i6()];
  37. var_dump($a);
  38. var_dump($b);
  39. var_dump($c);
  40. $a[i1()][i2()] = -($b[i3()][i4()] = +($c[i5()][i6()]));
  41. var_dump($a);
  42. var_dump($b);
  43. var_dump($c);
  44. ?>
  45. --EXPECT--
  46. i1
  47. i2
  48. i3
  49. i4
  50. i5
  51. i6
  52. array(1) {
  53. [0]=>
  54. array(1) {
  55. [0]=>
  56. int(2)
  57. }
  58. }
  59. array(1) {
  60. [0]=>
  61. array(1) {
  62. [0]=>
  63. int(2)
  64. }
  65. }
  66. array(1) {
  67. [0]=>
  68. array(1) {
  69. [0]=>
  70. int(2)
  71. }
  72. }
  73. i1
  74. i2
  75. i3
  76. i4
  77. i5
  78. i6
  79. array(1) {
  80. [0]=>
  81. array(1) {
  82. [0]=>
  83. int(-2)
  84. }
  85. }
  86. array(1) {
  87. [0]=>
  88. array(1) {
  89. [0]=>
  90. int(-2)
  91. }
  92. }
  93. array(1) {
  94. [0]=>
  95. array(1) {
  96. [0]=>
  97. int(2)
  98. }
  99. }
  100. i1
  101. i2
  102. i3
  103. i4
  104. i5
  105. i6
  106. array(1) {
  107. [0]=>
  108. array(1) {
  109. [0]=>
  110. int(-2)
  111. }
  112. }
  113. array(1) {
  114. [0]=>
  115. array(1) {
  116. [0]=>
  117. int(2)
  118. }
  119. }
  120. array(1) {
  121. [0]=>
  122. array(1) {
  123. [0]=>
  124. int(2)
  125. }
  126. }