Annotation of embedaddon/php/tests/lang/engine_assignExecutionOrder_006.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Evaluation order during assignments.
                      3: --FILE--
                      4: <?php
                      5: 
                      6: function i1() {
                      7:         echo "i1\n";
                      8:         return 0;
                      9: }
                     10: 
                     11: function i2() {
                     12:         echo "i2\n";
                     13:         return 0;
                     14: }
                     15: 
                     16: function i3() {
                     17:         echo "i3\n";
                     18:         return 0;
                     19: }
                     20: 
                     21: function i4() {
                     22:         echo "i4\n";
                     23:         return 0;
                     24: }
                     25: 
                     26: function i5() {
                     27:         echo "i5\n";
                     28:         return 0;
                     29: }
                     30: 
                     31: function i6() {
                     32:         echo "i6\n";
                     33:         return 0;
                     34: }
                     35: 
                     36: $a = array(array(0));
                     37: $b = array(array(1));
                     38: $c = array(array(2));
                     39: 
                     40: $a[i1()][i2()] = ($b[i3()][i4()] = $c[i5()][i6()]);
                     41: var_dump($a);
                     42: var_dump($b);
                     43: var_dump($c);
                     44: 
                     45: $a[i1()][i2()] = $b[i3()][i4()] = -$c[i5()][i6()];
                     46: var_dump($a);
                     47: var_dump($b);
                     48: var_dump($c);
                     49: 
                     50: $a[i1()][i2()] = -($b[i3()][i4()] = +($c[i5()][i6()]));
                     51: var_dump($a);
                     52: var_dump($b);
                     53: var_dump($c);
                     54: 
                     55: 
                     56: ?>
                     57: --EXPECT--
                     58: i1
                     59: i2
                     60: i3
                     61: i4
                     62: i5
                     63: i6
                     64: array(1) {
                     65:   [0]=>
                     66:   array(1) {
                     67:     [0]=>
                     68:     int(2)
                     69:   }
                     70: }
                     71: array(1) {
                     72:   [0]=>
                     73:   array(1) {
                     74:     [0]=>
                     75:     int(2)
                     76:   }
                     77: }
                     78: array(1) {
                     79:   [0]=>
                     80:   array(1) {
                     81:     [0]=>
                     82:     int(2)
                     83:   }
                     84: }
                     85: i1
                     86: i2
                     87: i3
                     88: i4
                     89: i5
                     90: i6
                     91: array(1) {
                     92:   [0]=>
                     93:   array(1) {
                     94:     [0]=>
                     95:     int(-2)
                     96:   }
                     97: }
                     98: array(1) {
                     99:   [0]=>
                    100:   array(1) {
                    101:     [0]=>
                    102:     int(-2)
                    103:   }
                    104: }
                    105: array(1) {
                    106:   [0]=>
                    107:   array(1) {
                    108:     [0]=>
                    109:     int(2)
                    110:   }
                    111: }
                    112: i1
                    113: i2
                    114: i3
                    115: i4
                    116: i5
                    117: i6
                    118: array(1) {
                    119:   [0]=>
                    120:   array(1) {
                    121:     [0]=>
                    122:     int(-2)
                    123:   }
                    124: }
                    125: array(1) {
                    126:   [0]=>
                    127:   array(1) {
                    128:     [0]=>
                    129:     int(2)
                    130:   }
                    131: }
                    132: array(1) {
                    133:   [0]=>
                    134:   array(1) {
                    135:     [0]=>
                    136:     int(2)
                    137:   }
                    138: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>