execution_order.phpt 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. --TEST--
  2. Execution order of variables
  3. --FILE--
  4. <?php
  5. /* strings and concat */
  6. class strclass {
  7. var $str = "bad";
  8. static $statstr = "bad";
  9. }
  10. $a = "bad";
  11. $b = "good";
  12. echo "1)";
  13. $c = $a.($a=$b);
  14. echo $c;
  15. echo "\r\n";
  16. $a = "bad";
  17. $b = "good";
  18. $c = ($a=$b).$a;
  19. echo "2)";
  20. echo $c;
  21. echo "\r\n";
  22. $str = new strclass();
  23. $c = $str->str.($str->str="good");
  24. echo "3)";
  25. echo $c;
  26. echo "\r\n";
  27. $str->str = "bad";
  28. $c = ($str->str="good").$str->str;
  29. echo "4)";
  30. echo $c;
  31. echo "\r\n";
  32. $c = strclass::$statstr.(strclass::$statstr="good");
  33. echo "5)";
  34. echo $c;
  35. echo "\r\n";
  36. strclass::$statstr = "bad";
  37. $c = (strclass::$statstr="good").strclass::$statstr;
  38. echo "6)";
  39. echo $c;
  40. echo "\r\n";
  41. function foo() {
  42. global $a;
  43. $a = "good";
  44. return $a;
  45. }
  46. $a = "bad";
  47. echo "7)";
  48. echo foo() . $a;
  49. echo "\r\n";
  50. $a = "bad";
  51. echo "8)";
  52. echo $a . foo();
  53. echo "\r\n";
  54. /* other operators */
  55. $x = 1;
  56. $z = $x - ($x++);
  57. echo "9)";
  58. echo $z;
  59. echo "\r\n";
  60. $x = 1;
  61. $z = ($x++) - $x;
  62. echo "10)";
  63. echo $z;
  64. echo "\r\n";
  65. $x = 1;
  66. $z = $x - (++$x);
  67. echo "11)";
  68. echo $z;
  69. echo "\r\n";
  70. $x = 1;
  71. $z = (++$x) - $x;
  72. echo "12)";
  73. echo $z;
  74. echo "\r\n";
  75. $x = 1;
  76. $y = 3;
  77. $z = $x - ($x=$y);
  78. echo "13)";
  79. echo $z;
  80. echo "\r\n";
  81. $x = 1;
  82. $y = 3;
  83. $z = ($x=$y) - $x;
  84. echo "14)";
  85. echo $z;
  86. echo "\r\n";
  87. $a = 100;
  88. $b = 200;
  89. echo "15)";
  90. echo $a + ($a=$b);
  91. echo "\r\n";
  92. $a = 100;
  93. $b = 200;
  94. echo "16)";
  95. echo ($a=$b) + $a;
  96. echo "\r\n";
  97. $a = array(100,200);
  98. $i = 0;
  99. echo "17)";
  100. echo $a[$i++] + $a[$i++];
  101. echo "\r\n";
  102. $i = -1;
  103. echo "18)";
  104. echo $a[++$i] + $a[++$i];
  105. echo "\r\n";
  106. $i = 0;
  107. echo "19)";
  108. echo $a[$i] + ($a[$i]=400);
  109. echo "\r\n";
  110. $a[0] = 100;
  111. echo "20)";
  112. echo ($a[$i]=400) + $a[$i];
  113. echo "\r\n";
  114. class c {
  115. var $val = 10;
  116. static $stat = 20;
  117. }
  118. echo "21)";
  119. echo c::$stat + (c::$stat=200);
  120. echo "\r\n";
  121. echo "22)";
  122. echo (c::$stat=300) + c::$stat;
  123. echo "\r\n";
  124. $c = new c();
  125. echo "23)";
  126. echo $c->val + ($c->val=200);
  127. echo "\r\n";
  128. echo "24)";
  129. echo ($c->val=300) + $c->val;
  130. echo "\r\n";
  131. ?>
  132. --EXPECT--
  133. 1)goodgood
  134. 2)goodgood
  135. 3)badgood
  136. 4)goodgood
  137. 5)badgood
  138. 6)goodgood
  139. 7)goodgood
  140. 8)goodgood
  141. 9)1
  142. 10)-1
  143. 11)0
  144. 12)0
  145. 13)0
  146. 14)0
  147. 15)400
  148. 16)400
  149. 17)300
  150. 18)300
  151. 19)500
  152. 20)800
  153. 21)220
  154. 22)600
  155. 23)210
  156. 24)600