3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php $tokens = token_get_all('<?php $a = 1 + 2; echo $a ?>'); foreach($tokens as $token) { echo "{$token[0]} ({$token[1]})"; }
Output for 7.0.0 - 7.1.0
379 (<?php )320 ($a)382 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 = ()382 ( )317 (1)382 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 + ()382 ( )317 (2) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 ; ()382 ( )328 (echo)382 ( )320 ($a)382 ( )381 (?>)
Output for hhvm-3.10.0 - 3.12.0
368 (<?php )309 ($a)371 ( )= ()371 ( )305 (1)371 ( )+ ()371 ( )305 (2); ()371 ( )316 (echo)371 ( )309 ($a)371 ( )370 (?>)
Output for 5.6.0 - 5.6.28
376 (<?php )312 ($a)379 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 = ()379 ( )308 (1)379 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 + ()379 ( )308 (2) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 ; ()379 ( )319 (echo)379 ( )312 ($a)379 ( )378 (?>)
Output for 5.5.0 - 5.5.38
374 (<?php )310 ($a)377 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 = ()377 ( )306 (1)377 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 + ()377 ( )306 (2) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 ; ()377 ( )317 (echo)377 ( )310 ($a)377 ( )376 (?>)
Output for 5.4.0 - 5.4.45
372 (<?php )309 ($a)375 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 = ()375 ( )305 (1)375 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 + ()375 ( )305 (2) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 ; ()375 ( )316 (echo)375 ( )309 ($a)375 ( )374 (?>)
Output for 5.3.0 - 5.3.29
368 (<?php )309 ($a)371 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 = ()371 ( )305 (1)371 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 + ()371 ( )305 (2) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 ; ()371 ( )316 (echo)371 ( )309 ($a)371 ( )370 (?>)
Output for 5.2.10 - 5.2.17
367 (<?php )309 ($a)370 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 = ()370 ( )305 (1)370 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 + ()370 ( )305 (2) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 ; ()370 ( )316 (echo)370 ( )309 ($a)370 ( )369 (?>)
Output for 5.1.0 - 5.2.9
367 (<?php )309 ($a)370 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 = ()370 ( )305 (1)370 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 + ()370 ( )305 (2) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 ; ()370 ( )316 (echo)370 ( )309 ($a)370 ( )369 (?>)
Output for 5.0.0 - 5.0.5
365 (<?php )308 ($a)368 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 = ()368 ( )304 (1)368 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 + ()368 ( )304 (2) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 ; ()368 ( )315 (echo)368 ( )308 ($a)368 ( )367 (?>)
Output for 4.4.2 - 4.4.9
354 (<?php )307 ($a)357 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 = ()357 ( )303 (1)357 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 + ()357 ( )303 (2) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 ; ()357 ( )314 (echo)357 ( )307 ($a)357 ( )356 (?>)
Output for 4.3.0 - 4.4.1
353 (<?php )306 ($a)356 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 = ()356 ( )302 (1)356 ( ) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 + ()356 ( )302 (2) Notice: Uninitialized string offset: 1 in /in/nQsBU on line 6 ; ()356 ( )313 (echo)356 ( )306 ($a)356 ( )355 (?>)