Annotation of embedaddon/php/tests/lang/execution_order.phpt, revision 1.1.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>