File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / lang / execution_order.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, 4 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: 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>