1--TEST-- 2Test token_get_all() function : usage variations - heredoc string for 'source' 3--SKIPIF-- 4<?php if (!extension_loaded("tokenizer")) print "skip"; ?> 5--FILE-- 6<?php 7/* 8 * Testing token_get_all() with heredoc 'source' string with all different types of token and heredoc string within 9 * <<<EOT - T_START_HEREDOC(371) 10 * EOT - T_END_HEREDOC(372) 11*/ 12 13echo "*** Testing token_get_all() : with heredoc source string ***\n"; 14 15$source = <<<EOT 16<?= 17 \$a = 2; 18 \$b = 1; 19 \$c = <<<EOS 20 This is to test 21 heredoc string 22EOS; 23 echo \$a + \$b; 24 function myFunction(\$a) 25 { 26 var_dump(\$a); 27 } 28 if(\$b < 10) { 29 \$b++; 30 } 31 else 32 \$b--; 33 while(\$a > 0) { 34 echo "*"; 35 \$a--; 36 } 37 myFunction(10); 38?> 39EOT; 40var_dump( token_get_all($source)); 41 42echo "Done" 43?> 44--EXPECTF-- 45*** Testing token_get_all() : with heredoc source string *** 46array(103) { 47 [0]=> 48 array(3) { 49 [0]=> 50 int(%d) 51 [1]=> 52 string(3) "<?=" 53 [2]=> 54 int(1) 55 } 56 [1]=> 57 array(3) { 58 [0]=> 59 int(%d) 60 [1]=> 61 string(3) " 62 " 63 [2]=> 64 int(1) 65 } 66 [2]=> 67 array(3) { 68 [0]=> 69 int(%d) 70 [1]=> 71 string(2) "$a" 72 [2]=> 73 int(2) 74 } 75 [3]=> 76 array(3) { 77 [0]=> 78 int(%d) 79 [1]=> 80 string(1) " " 81 [2]=> 82 int(2) 83 } 84 [4]=> 85 string(1) "=" 86 [5]=> 87 array(3) { 88 [0]=> 89 int(%d) 90 [1]=> 91 string(1) " " 92 [2]=> 93 int(2) 94 } 95 [6]=> 96 array(3) { 97 [0]=> 98 int(%d) 99 [1]=> 100 string(1) "2" 101 [2]=> 102 int(2) 103 } 104 [7]=> 105 string(1) ";" 106 [8]=> 107 array(3) { 108 [0]=> 109 int(%d) 110 [1]=> 111 string(3) " 112 " 113 [2]=> 114 int(2) 115 } 116 [9]=> 117 array(3) { 118 [0]=> 119 int(%d) 120 [1]=> 121 string(2) "$b" 122 [2]=> 123 int(%d) 124 } 125 [10]=> 126 array(3) { 127 [0]=> 128 int(%d) 129 [1]=> 130 string(1) " " 131 [2]=> 132 int(%d) 133 } 134 [11]=> 135 string(1) "=" 136 [12]=> 137 array(3) { 138 [0]=> 139 int(%d) 140 [1]=> 141 string(1) " " 142 [2]=> 143 int(%d) 144 } 145 [13]=> 146 array(3) { 147 [0]=> 148 int(%d) 149 [1]=> 150 string(1) "1" 151 [2]=> 152 int(%d) 153 } 154 [14]=> 155 string(1) ";" 156 [15]=> 157 array(3) { 158 [0]=> 159 int(%d) 160 [1]=> 161 string(3) " 162 " 163 [2]=> 164 int(%d) 165 } 166 [16]=> 167 array(3) { 168 [0]=> 169 int(%d) 170 [1]=> 171 string(2) "$c" 172 [2]=> 173 int(4) 174 } 175 [17]=> 176 array(3) { 177 [0]=> 178 int(%d) 179 [1]=> 180 string(1) " " 181 [2]=> 182 int(4) 183 } 184 [18]=> 185 string(1) "=" 186 [19]=> 187 array(3) { 188 [0]=> 189 int(%d) 190 [1]=> 191 string(1) " " 192 [2]=> 193 int(4) 194 } 195 [20]=> 196 array(3) { 197 [0]=> 198 int(%d) 199 [1]=> 200 string(7) "<<<EOS 201" 202 [2]=> 203 int(4) 204 } 205 [21]=> 206 array(3) { 207 [0]=> 208 int(%d) 209 [1]=> 210 string(35) " This is to test 211 heredoc string 212" 213 [2]=> 214 int(5) 215 } 216 [22]=> 217 array(3) { 218 [0]=> 219 int(%d) 220 [1]=> 221 string(3) "EOS" 222 [2]=> 223 int(7) 224 } 225 [23]=> 226 string(1) ";" 227 [24]=> 228 array(3) { 229 [0]=> 230 int(%d) 231 [1]=> 232 string(3) " 233 " 234 [2]=> 235 int(7) 236 } 237 [25]=> 238 array(3) { 239 [0]=> 240 int(%d) 241 [1]=> 242 string(4) "echo" 243 [2]=> 244 int(8) 245 } 246 [26]=> 247 array(3) { 248 [0]=> 249 int(%d) 250 [1]=> 251 string(1) " " 252 [2]=> 253 int(8) 254 } 255 [27]=> 256 array(3) { 257 [0]=> 258 int(%d) 259 [1]=> 260 string(2) "$a" 261 [2]=> 262 int(8) 263 } 264 [28]=> 265 array(3) { 266 [0]=> 267 int(%d) 268 [1]=> 269 string(1) " " 270 [2]=> 271 int(8) 272 } 273 [29]=> 274 string(1) "+" 275 [30]=> 276 array(3) { 277 [0]=> 278 int(%d) 279 [1]=> 280 string(1) " " 281 [2]=> 282 int(8) 283 } 284 [31]=> 285 array(3) { 286 [0]=> 287 int(%d) 288 [1]=> 289 string(2) "$b" 290 [2]=> 291 int(8) 292 } 293 [32]=> 294 string(1) ";" 295 [33]=> 296 array(3) { 297 [0]=> 298 int(%d) 299 [1]=> 300 string(3) " 301 " 302 [2]=> 303 int(8) 304 } 305 [34]=> 306 array(3) { 307 [0]=> 308 int(%d) 309 [1]=> 310 string(8) "function" 311 [2]=> 312 int(9) 313 } 314 [35]=> 315 array(3) { 316 [0]=> 317 int(%d) 318 [1]=> 319 string(1) " " 320 [2]=> 321 int(9) 322 } 323 [36]=> 324 array(3) { 325 [0]=> 326 int(%d) 327 [1]=> 328 string(10) "myFunction" 329 [2]=> 330 int(9) 331 } 332 [37]=> 333 string(1) "(" 334 [38]=> 335 array(3) { 336 [0]=> 337 int(%d) 338 [1]=> 339 string(2) "$a" 340 [2]=> 341 int(9) 342 } 343 [39]=> 344 string(1) ")" 345 [40]=> 346 array(3) { 347 [0]=> 348 int(%d) 349 [1]=> 350 string(3) " 351 " 352 [2]=> 353 int(9) 354 } 355 [41]=> 356 string(1) "{" 357 [42]=> 358 array(3) { 359 [0]=> 360 int(%d) 361 [1]=> 362 string(5) " 363 " 364 [2]=> 365 int(10) 366 } 367 [43]=> 368 array(3) { 369 [0]=> 370 int(%d) 371 [1]=> 372 string(8) "var_dump" 373 [2]=> 374 int(11) 375 } 376 [44]=> 377 string(1) "(" 378 [45]=> 379 array(3) { 380 [0]=> 381 int(%d) 382 [1]=> 383 string(2) "$a" 384 [2]=> 385 int(11) 386 } 387 [46]=> 388 string(1) ")" 389 [47]=> 390 string(1) ";" 391 [48]=> 392 array(3) { 393 [0]=> 394 int(%d) 395 [1]=> 396 string(3) " 397 " 398 [2]=> 399 int(11) 400 } 401 [49]=> 402 string(1) "}" 403 [50]=> 404 array(3) { 405 [0]=> 406 int(%d) 407 [1]=> 408 string(3) " 409 " 410 [2]=> 411 int(12) 412 } 413 [51]=> 414 array(3) { 415 [0]=> 416 int(%d) 417 [1]=> 418 string(2) "if" 419 [2]=> 420 int(13) 421 } 422 [52]=> 423 string(1) "(" 424 [53]=> 425 array(3) { 426 [0]=> 427 int(%d) 428 [1]=> 429 string(2) "$b" 430 [2]=> 431 int(13) 432 } 433 [54]=> 434 array(3) { 435 [0]=> 436 int(%d) 437 [1]=> 438 string(1) " " 439 [2]=> 440 int(13) 441 } 442 [55]=> 443 string(1) "<" 444 [56]=> 445 array(3) { 446 [0]=> 447 int(%d) 448 [1]=> 449 string(1) " " 450 [2]=> 451 int(13) 452 } 453 [57]=> 454 array(3) { 455 [0]=> 456 int(%d) 457 [1]=> 458 string(2) "10" 459 [2]=> 460 int(13) 461 } 462 [58]=> 463 string(1) ")" 464 [59]=> 465 array(3) { 466 [0]=> 467 int(%d) 468 [1]=> 469 string(1) " " 470 [2]=> 471 int(13) 472 } 473 [60]=> 474 string(1) "{" 475 [61]=> 476 array(3) { 477 [0]=> 478 int(%d) 479 [1]=> 480 string(5) " 481 " 482 [2]=> 483 int(13) 484 } 485 [62]=> 486 array(3) { 487 [0]=> 488 int(%d) 489 [1]=> 490 string(2) "$b" 491 [2]=> 492 int(14) 493 } 494 [63]=> 495 array(3) { 496 [0]=> 497 int(%d) 498 [1]=> 499 string(2) "++" 500 [2]=> 501 int(14) 502 } 503 [64]=> 504 string(1) ";" 505 [65]=> 506 array(3) { 507 [0]=> 508 int(%d) 509 [1]=> 510 string(3) " 511 " 512 [2]=> 513 int(14) 514 } 515 [66]=> 516 string(1) "}" 517 [67]=> 518 array(3) { 519 [0]=> 520 int(%d) 521 [1]=> 522 string(3) " 523 " 524 [2]=> 525 int(15) 526 } 527 [68]=> 528 array(3) { 529 [0]=> 530 int(%d) 531 [1]=> 532 string(4) "else" 533 [2]=> 534 int(16) 535 } 536 [69]=> 537 array(3) { 538 [0]=> 539 int(%d) 540 [1]=> 541 string(5) " 542 " 543 [2]=> 544 int(16) 545 } 546 [70]=> 547 array(3) { 548 [0]=> 549 int(%d) 550 [1]=> 551 string(2) "$b" 552 [2]=> 553 int(17) 554 } 555 [71]=> 556 array(3) { 557 [0]=> 558 int(%d) 559 [1]=> 560 string(2) "--" 561 [2]=> 562 int(17) 563 } 564 [72]=> 565 string(1) ";" 566 [73]=> 567 array(3) { 568 [0]=> 569 int(%d) 570 [1]=> 571 string(3) " 572 " 573 [2]=> 574 int(17) 575 } 576 [74]=> 577 array(3) { 578 [0]=> 579 int(%d) 580 [1]=> 581 string(5) "while" 582 [2]=> 583 int(18) 584 } 585 [75]=> 586 string(1) "(" 587 [76]=> 588 array(3) { 589 [0]=> 590 int(%d) 591 [1]=> 592 string(2) "$a" 593 [2]=> 594 int(18) 595 } 596 [77]=> 597 array(3) { 598 [0]=> 599 int(%d) 600 [1]=> 601 string(1) " " 602 [2]=> 603 int(18) 604 } 605 [78]=> 606 string(1) ">" 607 [79]=> 608 array(3) { 609 [0]=> 610 int(%d) 611 [1]=> 612 string(1) " " 613 [2]=> 614 int(18) 615 } 616 [80]=> 617 array(3) { 618 [0]=> 619 int(%d) 620 [1]=> 621 string(1) "0" 622 [2]=> 623 int(18) 624 } 625 [81]=> 626 string(1) ")" 627 [82]=> 628 array(3) { 629 [0]=> 630 int(%d) 631 [1]=> 632 string(1) " " 633 [2]=> 634 int(18) 635 } 636 [83]=> 637 string(1) "{" 638 [84]=> 639 array(3) { 640 [0]=> 641 int(%d) 642 [1]=> 643 string(5) " 644 " 645 [2]=> 646 int(18) 647 } 648 [85]=> 649 array(3) { 650 [0]=> 651 int(%d) 652 [1]=> 653 string(4) "echo" 654 [2]=> 655 int(19) 656 } 657 [86]=> 658 array(3) { 659 [0]=> 660 int(%d) 661 [1]=> 662 string(1) " " 663 [2]=> 664 int(19) 665 } 666 [87]=> 667 array(3) { 668 [0]=> 669 int(%d) 670 [1]=> 671 string(3) ""*"" 672 [2]=> 673 int(19) 674 } 675 [88]=> 676 string(1) ";" 677 [89]=> 678 array(3) { 679 [0]=> 680 int(%d) 681 [1]=> 682 string(5) " 683 " 684 [2]=> 685 int(19) 686 } 687 [90]=> 688 array(3) { 689 [0]=> 690 int(%d) 691 [1]=> 692 string(2) "$a" 693 [2]=> 694 int(20) 695 } 696 [91]=> 697 array(3) { 698 [0]=> 699 int(%d) 700 [1]=> 701 string(2) "--" 702 [2]=> 703 int(20) 704 } 705 [92]=> 706 string(1) ";" 707 [93]=> 708 array(3) { 709 [0]=> 710 int(%d) 711 [1]=> 712 string(3) " 713 " 714 [2]=> 715 int(20) 716 } 717 [94]=> 718 string(1) "}" 719 [95]=> 720 array(3) { 721 [0]=> 722 int(%d) 723 [1]=> 724 string(3) " 725 " 726 [2]=> 727 int(21) 728 } 729 [96]=> 730 array(3) { 731 [0]=> 732 int(%d) 733 [1]=> 734 string(10) "myFunction" 735 [2]=> 736 int(22) 737 } 738 [97]=> 739 string(1) "(" 740 [98]=> 741 array(3) { 742 [0]=> 743 int(%d) 744 [1]=> 745 string(2) "10" 746 [2]=> 747 int(22) 748 } 749 [99]=> 750 string(1) ")" 751 [100]=> 752 string(1) ";" 753 [101]=> 754 array(3) { 755 [0]=> 756 int(%d) 757 [1]=> 758 string(1) " 759" 760 [2]=> 761 int(22) 762 } 763 [102]=> 764 array(3) { 765 [0]=> 766 int(%d) 767 [1]=> 768 string(2) "?>" 769 [2]=> 770 int(23) 771 } 772} 773Done 774