token_get_all_variation4.phpt 8.6 KB

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