token_get_all_variation12.phpt 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575
  1. --TEST--
  2. Test token_get_all() function : usage variations - with predefined language constants
  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 language tokens
  9. * Source code: ext/tokenizer/tokenizer.c
  10. */
  11. /*
  12. * Testing token_get_all() with following predefined language constants:
  13. * __FILE__ - T_FILE
  14. * __CLASS__ - T_CLASS_C
  15. * __TRAIT__ - T_TRAIT_C
  16. * __FUNCTION__ - T_FUNC_C
  17. * __LINE__ - T_LINE
  18. * __METHOD__ - T_METHOD_C
  19. */
  20. echo "*** Testing token_get_all() : with language constants ***\n";
  21. // parsing __FILE__ token
  22. echo "-- with FILE --\n";
  23. $source = "<?php
  24. \$fp = fopen(__FILE__, 'r');
  25. ?>";
  26. var_dump( token_get_all($source));
  27. // parsing __CLASS__, __TRAIT__ and __FUNCTION__ tokens
  28. echo "-- with CLASS, TRAIT and FUNCTION --\n";
  29. $source = '<?php
  30. class MyClass
  31. {
  32. echo __CLASS__;
  33. echo __TRAIT__;
  34. function myFunction()
  35. { echo __FUNCTION__; }
  36. }
  37. ?>';
  38. var_dump( token_get_all($source));
  39. // parsing __LINE__ and __METHOD__ tokens
  40. echo "-- with LINE and METHOD --\n";
  41. $source = '<?php
  42. $a = __LINE__;
  43. $b = $b.__METHOD__;
  44. ?>';
  45. var_dump( token_get_all($source));
  46. echo "Done"
  47. ?>
  48. --EXPECTF--
  49. *** Testing token_get_all() : with language constants ***
  50. -- with FILE --
  51. array(16) {
  52. [0]=>
  53. array(3) {
  54. [0]=>
  55. int(%d)
  56. [1]=>
  57. string(6) "<?php "
  58. [2]=>
  59. int(1)
  60. }
  61. [1]=>
  62. array(3) {
  63. [0]=>
  64. int(%d)
  65. [1]=>
  66. string(1) "
  67. "
  68. [2]=>
  69. int(1)
  70. }
  71. [2]=>
  72. array(3) {
  73. [0]=>
  74. int(%d)
  75. [1]=>
  76. string(3) "$fp"
  77. [2]=>
  78. int(2)
  79. }
  80. [3]=>
  81. array(3) {
  82. [0]=>
  83. int(%d)
  84. [1]=>
  85. string(1) " "
  86. [2]=>
  87. int(2)
  88. }
  89. [4]=>
  90. string(1) "="
  91. [5]=>
  92. array(3) {
  93. [0]=>
  94. int(%d)
  95. [1]=>
  96. string(2) " "
  97. [2]=>
  98. int(2)
  99. }
  100. [6]=>
  101. array(3) {
  102. [0]=>
  103. int(%d)
  104. [1]=>
  105. string(5) "fopen"
  106. [2]=>
  107. int(2)
  108. }
  109. [7]=>
  110. string(1) "("
  111. [8]=>
  112. array(3) {
  113. [0]=>
  114. int(%d)
  115. [1]=>
  116. string(8) "__FILE__"
  117. [2]=>
  118. int(2)
  119. }
  120. [9]=>
  121. string(1) ","
  122. [10]=>
  123. array(3) {
  124. [0]=>
  125. int(%d)
  126. [1]=>
  127. string(1) " "
  128. [2]=>
  129. int(2)
  130. }
  131. [11]=>
  132. array(3) {
  133. [0]=>
  134. int(%d)
  135. [1]=>
  136. string(3) "'r'"
  137. [2]=>
  138. int(2)
  139. }
  140. [12]=>
  141. string(1) ")"
  142. [13]=>
  143. string(1) ";"
  144. [14]=>
  145. array(3) {
  146. [0]=>
  147. int(%d)
  148. [1]=>
  149. string(1) "
  150. "
  151. [2]=>
  152. int(2)
  153. }
  154. [15]=>
  155. array(3) {
  156. [0]=>
  157. int(%d)
  158. [1]=>
  159. string(2) "?>"
  160. [2]=>
  161. int(%d)
  162. }
  163. }
  164. -- with CLASS, TRAIT and FUNCTION --
  165. array(35) {
  166. [0]=>
  167. array(3) {
  168. [0]=>
  169. int(%d)
  170. [1]=>
  171. string(6) "<?php
  172. "
  173. [2]=>
  174. int(1)
  175. }
  176. [1]=>
  177. array(3) {
  178. [0]=>
  179. int(%d)
  180. [1]=>
  181. string(5) "class"
  182. [2]=>
  183. int(2)
  184. }
  185. [2]=>
  186. array(3) {
  187. [0]=>
  188. int(%d)
  189. [1]=>
  190. string(1) " "
  191. [2]=>
  192. int(2)
  193. }
  194. [3]=>
  195. array(3) {
  196. [0]=>
  197. int(%d)
  198. [1]=>
  199. string(7) "MyClass"
  200. [2]=>
  201. int(2)
  202. }
  203. [4]=>
  204. array(3) {
  205. [0]=>
  206. int(%d)
  207. [1]=>
  208. string(1) "
  209. "
  210. [2]=>
  211. int(2)
  212. }
  213. [5]=>
  214. string(1) "{"
  215. [6]=>
  216. array(3) {
  217. [0]=>
  218. int(%d)
  219. [1]=>
  220. string(3) "
  221. "
  222. [2]=>
  223. int(%d)
  224. }
  225. [7]=>
  226. array(3) {
  227. [0]=>
  228. int(%d)
  229. [1]=>
  230. string(4) "echo"
  231. [2]=>
  232. int(4)
  233. }
  234. [8]=>
  235. array(3) {
  236. [0]=>
  237. int(%d)
  238. [1]=>
  239. string(2) " "
  240. [2]=>
  241. int(4)
  242. }
  243. [9]=>
  244. array(3) {
  245. [0]=>
  246. int(%d)
  247. [1]=>
  248. string(9) "__CLASS__"
  249. [2]=>
  250. int(4)
  251. }
  252. [10]=>
  253. string(1) ";"
  254. [11]=>
  255. array(3) {
  256. [0]=>
  257. int(%d)
  258. [1]=>
  259. string(3) "
  260. "
  261. [2]=>
  262. int(%d)
  263. }
  264. [12]=>
  265. array(3) {
  266. [0]=>
  267. int(%d)
  268. [1]=>
  269. string(4) "echo"
  270. [2]=>
  271. int(5)
  272. }
  273. [13]=>
  274. array(3) {
  275. [0]=>
  276. int(%d)
  277. [1]=>
  278. string(2) " "
  279. [2]=>
  280. int(5)
  281. }
  282. [14]=>
  283. array(3) {
  284. [0]=>
  285. int(%d)
  286. [1]=>
  287. string(9) "__TRAIT__"
  288. [2]=>
  289. int(5)
  290. }
  291. [15]=>
  292. string(1) ";"
  293. [16]=>
  294. array(3) {
  295. [0]=>
  296. int(%d)
  297. [1]=>
  298. string(3) "
  299. "
  300. [2]=>
  301. int(5)
  302. }
  303. [17]=>
  304. array(3) {
  305. [0]=>
  306. int(%d)
  307. [1]=>
  308. string(8) "function"
  309. [2]=>
  310. int(6)
  311. }
  312. [18]=>
  313. array(3) {
  314. [0]=>
  315. int(%d)
  316. [1]=>
  317. string(1) " "
  318. [2]=>
  319. int(6)
  320. }
  321. [19]=>
  322. array(3) {
  323. [0]=>
  324. int(%d)
  325. [1]=>
  326. string(10) "myFunction"
  327. [2]=>
  328. int(6)
  329. }
  330. [20]=>
  331. string(1) "("
  332. [21]=>
  333. string(1) ")"
  334. [22]=>
  335. array(3) {
  336. [0]=>
  337. int(%d)
  338. [1]=>
  339. string(3) "
  340. "
  341. [2]=>
  342. int(6)
  343. }
  344. [23]=>
  345. string(1) "{"
  346. [24]=>
  347. array(3) {
  348. [0]=>
  349. int(%d)
  350. [1]=>
  351. string(2) " "
  352. [2]=>
  353. int(7)
  354. }
  355. [25]=>
  356. array(3) {
  357. [0]=>
  358. int(%d)
  359. [1]=>
  360. string(4) "echo"
  361. [2]=>
  362. int(7)
  363. }
  364. [26]=>
  365. array(3) {
  366. [0]=>
  367. int(%d)
  368. [1]=>
  369. string(2) " "
  370. [2]=>
  371. int(7)
  372. }
  373. [27]=>
  374. array(3) {
  375. [0]=>
  376. int(%d)
  377. [1]=>
  378. string(12) "__FUNCTION__"
  379. [2]=>
  380. int(7)
  381. }
  382. [28]=>
  383. string(1) ";"
  384. [29]=>
  385. array(3) {
  386. [0]=>
  387. int(%d)
  388. [1]=>
  389. string(1) " "
  390. [2]=>
  391. int(7)
  392. }
  393. [30]=>
  394. string(1) "}"
  395. [31]=>
  396. array(3) {
  397. [0]=>
  398. int(%d)
  399. [1]=>
  400. string(1) "
  401. "
  402. [2]=>
  403. int(7)
  404. }
  405. [32]=>
  406. string(1) "}"
  407. [33]=>
  408. array(3) {
  409. [0]=>
  410. int(%d)
  411. [1]=>
  412. string(1) "
  413. "
  414. [2]=>
  415. int(8)
  416. }
  417. [34]=>
  418. array(3) {
  419. [0]=>
  420. int(%d)
  421. [1]=>
  422. string(2) "?>"
  423. [2]=>
  424. int(9)
  425. }
  426. }
  427. -- with LINE and METHOD --
  428. array(19) {
  429. [0]=>
  430. array(3) {
  431. [0]=>
  432. int(%d)
  433. [1]=>
  434. string(6) "<?php
  435. "
  436. [2]=>
  437. int(1)
  438. }
  439. [1]=>
  440. array(3) {
  441. [0]=>
  442. int(%d)
  443. [1]=>
  444. string(2) " "
  445. [2]=>
  446. int(2)
  447. }
  448. [2]=>
  449. array(3) {
  450. [0]=>
  451. int(%d)
  452. [1]=>
  453. string(2) "$a"
  454. [2]=>
  455. int(2)
  456. }
  457. [3]=>
  458. array(3) {
  459. [0]=>
  460. int(%d)
  461. [1]=>
  462. string(1) " "
  463. [2]=>
  464. int(2)
  465. }
  466. [4]=>
  467. string(1) "="
  468. [5]=>
  469. array(3) {
  470. [0]=>
  471. int(%d)
  472. [1]=>
  473. string(1) " "
  474. [2]=>
  475. int(2)
  476. }
  477. [6]=>
  478. array(3) {
  479. [0]=>
  480. int(%d)
  481. [1]=>
  482. string(8) "__LINE__"
  483. [2]=>
  484. int(2)
  485. }
  486. [7]=>
  487. string(1) ";"
  488. [8]=>
  489. array(3) {
  490. [0]=>
  491. int(%d)
  492. [1]=>
  493. string(3) "
  494. "
  495. [2]=>
  496. int(2)
  497. }
  498. [9]=>
  499. array(3) {
  500. [0]=>
  501. int(%d)
  502. [1]=>
  503. string(2) "$b"
  504. [2]=>
  505. int(%d)
  506. }
  507. [10]=>
  508. array(3) {
  509. [0]=>
  510. int(%d)
  511. [1]=>
  512. string(1) " "
  513. [2]=>
  514. int(%d)
  515. }
  516. [11]=>
  517. string(1) "="
  518. [12]=>
  519. array(3) {
  520. [0]=>
  521. int(%d)
  522. [1]=>
  523. string(1) " "
  524. [2]=>
  525. int(%d)
  526. }
  527. [13]=>
  528. array(3) {
  529. [0]=>
  530. int(%d)
  531. [1]=>
  532. string(2) "$b"
  533. [2]=>
  534. int(%d)
  535. }
  536. [14]=>
  537. string(1) "."
  538. [15]=>
  539. array(3) {
  540. [0]=>
  541. int(%d)
  542. [1]=>
  543. string(10) "__METHOD__"
  544. [2]=>
  545. int(%d)
  546. }
  547. [16]=>
  548. string(1) ";"
  549. [17]=>
  550. array(3) {
  551. [0]=>
  552. int(%d)
  553. [1]=>
  554. string(1) "
  555. "
  556. [2]=>
  557. int(%d)
  558. }
  559. [18]=>
  560. array(3) {
  561. [0]=>
  562. int(%d)
  563. [1]=>
  564. string(2) "?>"
  565. [2]=>
  566. int(4)
  567. }
  568. }
  569. Done