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