Annotation of embedaddon/php/tests/lang/execution_order.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Execution order of variables
! 3: --FILE--
! 4: <?php
! 5:
! 6: /* strings and concat */
! 7:
! 8: class strclass {
! 9: var $str = "bad";
! 10: static $statstr = "bad";
! 11: }
! 12:
! 13: $a = "bad";
! 14: $b = "good";
! 15: echo "1)";
! 16: $c = $a.($a=$b);
! 17: echo $c;
! 18: echo "\r\n";
! 19:
! 20: $a = "bad";
! 21: $b = "good";
! 22: $c = ($a=$b).$a;
! 23: echo "2)";
! 24: echo $c;
! 25: echo "\r\n";
! 26:
! 27:
! 28: $str = new strclass();
! 29: $c = $str->str.($str->str="good");
! 30: echo "3)";
! 31: echo $c;
! 32: echo "\r\n";
! 33:
! 34: $str->str = "bad";
! 35:
! 36: $c = ($str->str="good").$str->str;
! 37: echo "4)";
! 38: echo $c;
! 39: echo "\r\n";
! 40:
! 41: $c = strclass::$statstr.(strclass::$statstr="good");
! 42: echo "5)";
! 43: echo $c;
! 44: echo "\r\n";
! 45:
! 46: strclass::$statstr = "bad";
! 47:
! 48: $c = (strclass::$statstr="good").strclass::$statstr;
! 49: echo "6)";
! 50: echo $c;
! 51: echo "\r\n";
! 52:
! 53:
! 54: function foo() {
! 55: global $a;
! 56: $a = "good";
! 57: return $a;
! 58: }
! 59:
! 60:
! 61: $a = "bad";
! 62: echo "7)";
! 63: echo foo() . $a;
! 64: echo "\r\n";
! 65:
! 66: $a = "bad";
! 67: echo "8)";
! 68: echo $a . foo();
! 69: echo "\r\n";
! 70:
! 71: /* other operators */
! 72:
! 73: $x = 1;
! 74: $z = $x - ($x++);
! 75: echo "9)";
! 76: echo $z;
! 77: echo "\r\n";
! 78:
! 79: $x = 1;
! 80: $z = ($x++) - $x;
! 81: echo "10)";
! 82: echo $z;
! 83: echo "\r\n";
! 84:
! 85: $x = 1;
! 86: $z = $x - (++$x);
! 87: echo "11)";
! 88: echo $z;
! 89: echo "\r\n";
! 90:
! 91: $x = 1;
! 92: $z = (++$x) - $x;
! 93: echo "12)";
! 94: echo $z;
! 95: echo "\r\n";
! 96:
! 97:
! 98: $x = 1;
! 99: $y = 3;
! 100: $z = $x - ($x=$y);
! 101: echo "13)";
! 102: echo $z;
! 103: echo "\r\n";
! 104:
! 105: $x = 1;
! 106: $y = 3;
! 107: $z = ($x=$y) - $x;
! 108: echo "14)";
! 109: echo $z;
! 110: echo "\r\n";
! 111:
! 112:
! 113: $a = 100;
! 114: $b = 200;
! 115: echo "15)";
! 116: echo $a + ($a=$b);
! 117: echo "\r\n";
! 118:
! 119: $a = 100;
! 120: $b = 200;
! 121: echo "16)";
! 122: echo ($a=$b) + $a;
! 123: echo "\r\n";
! 124:
! 125:
! 126: $a = array(100,200);
! 127: $i = 0;
! 128:
! 129: echo "17)";
! 130: echo $a[$i++] + $a[$i++];
! 131: echo "\r\n";
! 132:
! 133: $i = -1;
! 134: echo "18)";
! 135: echo $a[++$i] + $a[++$i];
! 136: echo "\r\n";
! 137:
! 138: $i = 0;
! 139: echo "19)";
! 140: echo $a[$i] + ($a[$i]=400);
! 141: echo "\r\n";
! 142:
! 143:
! 144: $a[0] = 100;
! 145: echo "20)";
! 146: echo ($a[$i]=400) + $a[$i];
! 147: echo "\r\n";
! 148:
! 149:
! 150: class c {
! 151: var $val = 10;
! 152: static $stat = 20;
! 153: }
! 154:
! 155: echo "21)";
! 156: echo c::$stat + (c::$stat=200);
! 157: echo "\r\n";
! 158:
! 159: echo "22)";
! 160: echo (c::$stat=300) + c::$stat;
! 161: echo "\r\n";
! 162:
! 163: $c = new c();
! 164:
! 165: echo "23)";
! 166: echo $c->val + ($c->val=200);
! 167: echo "\r\n";
! 168:
! 169: echo "24)";
! 170: echo ($c->val=300) + $c->val;
! 171: echo "\r\n";
! 172:
! 173: ?>
! 174: --EXPECT--
! 175: 1)goodgood
! 176: 2)goodgood
! 177: 3)badgood
! 178: 4)goodgood
! 179: 5)badgood
! 180: 6)goodgood
! 181: 7)goodgood
! 182: 8)goodgood
! 183: 9)1
! 184: 10)-1
! 185: 11)0
! 186: 12)0
! 187: 13)0
! 188: 14)0
! 189: 15)400
! 190: 16)400
! 191: 17)300
! 192: 18)300
! 193: 19)500
! 194: 20)800
! 195: 21)220
! 196: 22)600
! 197: 23)210
! 198: 24)600
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>