File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / lang / engine_assignExecutionOrder_006.phpt
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:48:06 2012 UTC (12 years, 6 months ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, v5_4_17p0, v5_4_17, v5_3_10, HEAD
php

    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>