engine_assignExecutionOrder_004.phpt 482 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. --TEST--
  2. Evaluation order during assignments.
  3. --FILE--
  4. <?php
  5. function i1() {
  6. echo "i1\n";
  7. return 1;
  8. }
  9. function i2() {
  10. echo "i2\n";
  11. return 1;
  12. }
  13. function i3() {
  14. echo "i3\n";
  15. return 3;
  16. }
  17. $a = array(10, 11, 12, 13);
  18. list($a[i1()+i2()], , list($a[i3()], $a[])) = array(0, 1, array(30, 40), 3);
  19. var_dump($a);
  20. ?>
  21. --EXPECT--
  22. i1
  23. i2
  24. i3
  25. array(5) {
  26. [0]=>
  27. int(10)
  28. [1]=>
  29. int(11)
  30. [2]=>
  31. int(0)
  32. [3]=>
  33. int(30)
  34. [4]=>
  35. int(40)
  36. }