Annotation of embedaddon/php/tests/lang/023-1.inc, revision 1.1
1.1 ! misho 1: <html>
! 2: <head>
! 3: <?php
! 4: /* the point of this file is to intensively test various aspects of
! 5: * the parser. right now, each test focuses in one aspect only
! 6: * (e.g. variable aliasing, arithemtic operator, various control
! 7: * structures), while trying to combine code from other parts of the
! 8: * parser as well.
! 9: */
! 10: ?>
! 11:
! 12: *** Testing assignments and variable aliasing: ***<br>
! 13: <?php
! 14: /* This test tests assignments to variables using other variables as variable-names */
! 15: $a = "b";
! 16: $$a = "test";
! 17: $$$a = "blah";
! 18: ${$$$a}["associative arrays work too"] = "this is nifty";
! 19: ?>
! 20: This should read "blah": <?php echo "$test<br>\n"; ?>
! 21: This should read "this is nifty": <?php echo $blah[$test="associative arrays work too"]."<br>\n"; ?>
! 22: *************************************************<br>
! 23:
! 24: *** Testing integer operators ***<br>
! 25: <?php
! 26: /* test just about any operator possible on $i and $j (ints) */
! 27: $i = 5;
! 28: $j = 3;
! 29: ?>
! 30: Correct result - 8: <?php echo $i+$j; ?><br>
! 31: Correct result - 8: <?php echo $i+$j; ?><br>
! 32: Correct result - 2: <?php echo $i-$j; ?><br>
! 33: Correct result - -2: <?php echo $j-$i; ?><br>
! 34: Correct result - 15: <?php echo $i*$j; ?><br>
! 35: Correct result - 15: <?php echo $j*$i; ?><br>
! 36: Correct result - 2: <?php echo $i%$j; ?><br>
! 37: Correct result - 3: <?php echo $j%$i; ?><br>
! 38: *********************************<br>
! 39:
! 40: *** Testing real operators ***<br>
! 41: <?php
! 42: /* test just about any operator possible on $i and $j (floats) */
! 43: $i = 5.0;
! 44: $j = 3.0;
! 45: ?>
! 46: Correct result - 8: <?php echo $i+$j; ?><br>
! 47: Correct result - 8: <?php echo $i+$j; ?><br>
! 48: Correct result - 2: <?php echo $i-$j; ?><br>
! 49: Correct result - -2: <?php echo $j-$i; ?><br>
! 50: Correct result - 15: <?php echo $i*$j; ?><br>
! 51: Correct result - 15: <?php echo $j*$i; ?><br>
! 52: Correct result - 2: <?php echo $i%$j; ?><br>
! 53: Correct result - 3: <?php echo $j%$i; ?><br>
! 54: *********************************<br>
! 55:
! 56: *** Testing if/elseif/else control ***<br>
! 57:
! 58: <?php
! 59: /* sick if/elseif/else test by Andi :) */
! 60: $a = 5;
! 61: if ($a == "4") {
! 62: echo "This "." does "." not "." work<br>\n";
! 63: } elseif ($a == "5") {
! 64: echo "This "." works<br>\n";
! 65: $a = 6;
! 66: if ("andi" == ($test = "andi")) {
! 67: echo "this_still_works<br>\n";
! 68: } elseif (1) {
! 69: echo "should_not_print<br>\n";
! 70: } else {
! 71: echo "should_not_print<br>\n";
! 72: }
! 73: if (44 == 43) {
! 74: echo "should_not_print<br>\n";
! 75: } else {
! 76: echo "should_print<br>\n";
! 77: }
! 78: } elseif ($a == 6) {
! 79: echo "this "."broken<br>\n";
! 80: if (0) {
! 81: echo "this_should_not_print<br>\n";
! 82: } else {
! 83: echo "TestingDanglingElse_This_Should_not_print<br>\n";
! 84: }
! 85: } else {
! 86: echo "This "."does "." not"." work<br>\n";
! 87: }
! 88: ?>
! 89:
! 90:
! 91: *** Seriously nested if's test ***<br>
! 92: ** spelling correction by kluzz **
! 93: <?php
! 94: /* yet another sick if/elseif/else test by Zeev */
! 95: $i=$j=0;
! 96: echo "Only two lines of text should follow:<br>\n";
! 97: if (0) { /* this code is not supposed to be executed */
! 98: echo "hmm, this shouldn't be displayed #1<br>\n";
! 99: $j++;
! 100: if (1) {
! 101: $i
! 102: +=
! 103: $j;
! 104: if (0) {
! 105: $j = ++$i;
! 106: if (1) {
! 107: $j *= $i;
! 108: echo "damn, this shouldn't be displayed<br>\n";
! 109: } else {
! 110: $j /= $i;
! 111: ++$j;
! 112: echo "this shouldn't be displayed either<br>\n";
! 113: }
! 114: } elseif (1) {
! 115: $i++; $j++;
! 116: echo "this isn't supposed to be displayed<br>\n";
! 117: }
! 118: } elseif (0) {
! 119: $i++;
! 120: echo "this definitely shouldn't be displayed<br>\n";
! 121: } else {
! 122: --$j;
! 123: echo "and this too shouldn't be displayed<br>\n";
! 124: while ($j>0) {
! 125: $j--;
! 126: }
! 127: }
! 128: } elseif (2-2) { /* as long as 2-2==0, this isn't supposed to be executed either */
! 129: $i = ++$j;
! 130: echo "hmm, this shouldn't be displayed #2<br>\n";
! 131: if (1) {
! 132: $j = ++$i;
! 133: if (0) {
! 134: $j = $i*2+$j*($i++);
! 135: if (1) {
! 136: $i++;
! 137: echo "damn, this shouldn't be displayed<br>\n";
! 138: } else {
! 139: $j++;
! 140: echo "this shouldn't be displayed either<br>\n";
! 141: }
! 142: } else if (1) {
! 143: ++$j;
! 144: echo "this isn't supposed to be displayed<br>\n";
! 145: }
! 146: } elseif (0) {
! 147: $j++;
! 148: echo "this definitely shouldn't be displayed<br>\n";
! 149: } else {
! 150: $i++;
! 151: echo "and this too shouldn't be displayed<br>\n";
! 152: }
! 153: } else {
! 154: $j=$i++; /* this should set $i to 1, but shouldn't change $j (it's assigned $i's previous values, zero) */
! 155: echo "this should be displayed. should be: \$i=1, \$j=0. is: \$i=$i, \$j=$j<br>\n";
! 156: if (1) {
! 157: $j += ++$i; /* ++$i --> $i==2, $j += 2 --> $j==2 */
! 158: if (0) {
! 159: $j += 40;
! 160: if (1) {
! 161: $i += 50;
! 162: echo "damn, this shouldn't be displayed<br>\n";
! 163: } else {
! 164: $j += 20;
! 165: echo "this shouldn't be displayed either<br>\n";
! 166: }
! 167: } else if (1) {
! 168: $j *= $i; /* $j *= 2 --> $j == 4 */
! 169: echo "this is supposed to be displayed. should be: \$i=2, \$j=4. is: \$i=$i, \$j=$j<br>\n";
! 170: echo "3 loop iterations should follow:<br>\n";
! 171: while ($i<=$j) {
! 172: echo $i++." $j<br>\n";
! 173: }
! 174: }
! 175: } elseif (0) {
! 176: echo "this definitely shouldn't be displayed<br>\n";
! 177: } else {
! 178: echo "and this too shouldn't be displayed<br>\n";
! 179: }
! 180: echo "**********************************<br>\n";
! 181: }
! 182: ?>
! 183:
! 184: *** C-style else-if's ***<br>
! 185: <?php
! 186: /* looks like without we even tried, C-style else-if structure works fine! */
! 187: if ($a=0) {
! 188: echo "This shouldn't be displayed<br>\n";
! 189: } else if ($a++) {
! 190: echo "This shouldn't be displayed either<br>\n";
! 191: } else if (--$a) {
! 192: echo "No, this neither<br>\n";
! 193: } else if (++$a) {
! 194: echo "This should be displayed<br>\n";
! 195: } else {
! 196: echo "This shouldn't be displayed at all<br>\n";
! 197: }
! 198: ?>
! 199: *************************<br>
! 200:
! 201: *** WHILE tests ***<br>
! 202: <?php
! 203: $i=0;
! 204: $j=20;
! 205: while ($i<(2*$j)) {
! 206: if ($i>$j) {
! 207: echo "$i is greater than $j<br>\n";
! 208: } else if ($i==$j) {
! 209: echo "$i equals $j<br>\n";
! 210: } else {
! 211: echo "$i is smaller than $j<br>\n";
! 212: }
! 213: $i++;
! 214: }
! 215: ?>
! 216: *******************<br>
! 217:
! 218:
! 219: *** Nested WHILEs ***<br>
! 220: <?php
! 221: $arr_len=3;
! 222:
! 223: $i=0;
! 224: while ($i<$arr_len) {
! 225: $j=0;
! 226: while ($j<$arr_len) {
! 227: $k=0;
! 228: while ($k<$arr_len) {
! 229: ${"test$i$j"}[$k] = $i+$j+$k;
! 230: $k++;
! 231: }
! 232: $j++;
! 233: }
! 234: $i++;
! 235: }
! 236:
! 237: echo "Each array variable should be equal to the sum of its indices:<br>\n";
! 238:
! 239: $i=0;
! 240: while ($i<$arr_len) {
! 241: $j=0;
! 242: while ($j<$arr_len) {
! 243: $k=0;
! 244: while ($k<$arr_len) {
! 245: echo "\${test$i$j}[$k] = ".${"test$i$j"}[$k]."<br>\n";
! 246: $k++;
! 247: }
! 248: $j++;
! 249: }
! 250: $i++;
! 251: }
! 252: ?>
! 253: *********************<br>
! 254:
! 255: *** hash test... ***<br>
! 256: <?php
! 257: /*
! 258: $i=0;
! 259:
! 260: while ($i<10000) {
! 261: $arr[$i]=$i;
! 262: $i++;
! 263: }
! 264:
! 265: $i=0;
! 266: while ($i<10000) {
! 267: echo $arr[$i++]."<br>\n";
! 268: }
! 269: */
! 270: echo "commented out...";
! 271: ?>
! 272:
! 273: **************************<br>
! 274:
! 275: *** Hash resizing test ***<br>
! 276: <?php
! 277: $i = 10;
! 278: $a = 'b';
! 279: while ($i > 0) {
! 280: $a = $a . 'a';
! 281: echo "$a<br>\n";
! 282: $resize[$a] = $i;
! 283: $i--;
! 284: }
! 285: $i = 10;
! 286: $a = 'b';
! 287: while ($i > 0) {
! 288: $a = $a . 'a';
! 289: echo "$a<br>\n";
! 290: echo $resize[$a]."<br>\n";
! 291: $i--;
! 292: }
! 293: ?>
! 294: **************************<br>
! 295:
! 296:
! 297: *** break/continue test ***<br>
! 298: <?php
! 299: $i=0;
! 300:
! 301: echo "\$i should go from 0 to 2<br>\n";
! 302: while ($i<5) {
! 303: if ($i>2) {
! 304: break;
! 305: }
! 306: $j=0;
! 307: echo "\$j should go from 3 to 4, and \$q should go from 3 to 4<br>\n";
! 308: while ($j<5) {
! 309: if ($j<=2) {
! 310: $j++;
! 311: continue;
! 312: }
! 313: echo " \$j=$j<br>\n";
! 314: for ($q=0; $q<=10; $q++) {
! 315: if ($q<3) {
! 316: continue;
! 317: }
! 318: if ($q>4) {
! 319: break;
! 320: }
! 321: echo " \$q=$q<br>\n";
! 322: }
! 323: $j++;
! 324: }
! 325: $j=0;
! 326: echo "\$j should go from 0 to 2<br>\n";
! 327: while ($j<5) {
! 328: if ($j>2) {
! 329: $k=0;
! 330: echo "\$k should go from 0 to 2<br>\n";
! 331: while ($k<5) {
! 332: if ($k>2) {
! 333: break 2;
! 334: }
! 335: echo " \$k=$k<br>\n";
! 336: $k++;
! 337: }
! 338: }
! 339: echo " \$j=$j<br>\n";
! 340: $j++;
! 341: }
! 342: echo "\$i=$i<br>\n";
! 343: $i++;
! 344: }
! 345: ?>
! 346: ***********************<br>
! 347:
! 348: *** Nested file include test ***<br>
! 349: <?php include("023-2.inc"); ?>
! 350: ********************************<br>
! 351:
! 352: <?php
! 353: {
! 354: echo "Tests completed.<br>\n"; # testing some PHP style comment...
! 355: }
! 356: ?>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>