engine_assignExecutionOrder_005.phpt 780 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. ?>
  37. --EXPECT--
  38. i1
  39. i2
  40. i3
  41. i4
  42. i5
  43. i6
  44. array(1) {
  45. [0]=>
  46. array(1) {
  47. [0]=>
  48. int(2)
  49. }
  50. }
  51. array(1) {
  52. [0]=>
  53. array(1) {
  54. [0]=>
  55. int(2)
  56. }
  57. }
  58. array(1) {
  59. [0]=>
  60. array(1) {
  61. [0]=>
  62. int(2)
  63. }
  64. }