engine_assignExecutionOrder_004.phpt 673 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. function i4() {
  18. global $a;
  19. $a = array(10, 11, 12, 13, 14);
  20. echo "i4\n";
  21. return 4;
  22. }
  23. $a = 0; // $a should not be indexable till the i4 has been executed
  24. list($a[i1()+i2()], , list($a[i3()], $a[i4()]), $a[]) = array (0, 1, array(30, 40), 3, 4);
  25. var_dump($a);
  26. ?>
  27. --EXPECT--
  28. i1
  29. i2
  30. i3
  31. i4
  32. array(6) {
  33. [0]=>
  34. int(10)
  35. [1]=>
  36. int(11)
  37. [2]=>
  38. int(0)
  39. [3]=>
  40. int(30)
  41. [4]=>
  42. int(40)
  43. [5]=>
  44. int(3)
  45. }