3v4l.org

run code in 500+ PHP versions simultaneously
<?php $multiSql = " ALTER TABLE `my_table` CHANGE `typ` `typ` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '0=none; 1=test1; 2=test2; 3=test3'; ALTER TABLE `my_table2` ADD `date` varchar(25) COLLATE utf8_czech_ci DEFAULT NULL AFTER `test`; ALTER TABLE `my_table3` ADD `date` varchar(25) COLLATE utf8_czech_ci DEFAULT NULL AFTER `test`; ALTER TABLE `my_table3` ADD `test2` varchar(25) COLLATE utf8_czech_ci DEFAULT NULL AFTER `date`; ALTER TABLE `my_table3` CHANGE `test2` `test2` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '0=test; 1=test2;'; "; $sqlArray = array_map(function($x){ return trim(preg_replace("/\R/", '', $x)); }, preg_split('~\([^)]*\)(*SKIP)(*F)|(?<=;)(?=\h*$|\s*\bALTER TABLE\b)~m', trim($multiSql), -1, PREG_SPLIT_NO_EMPTY)); print_r($sqlArray);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/l6677
function name:  (null)
number of ops:  18
compiled vars:  !0 = $multiSql, !1 = $sqlArray
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, '%0AALTER+TABLE+%60my_table%60+CHANGE+%60typ%60+%60typ%60+INT%2810%29+UNSIGNED+NOT+NULL+DEFAULT+%270%27+COMMENT+%270%3Dnone%3B+1%3Dtest1%3B+2%3Dtest2%3B+3%3Dtest3%27%3B%0A%0AALTER+TABLE+%60my_table2%60%0A++ADD+%60date%60+varchar%2825%29+COLLATE+utf8_czech_ci+DEFAULT+NULL+AFTER+%60test%60%3B%0A+%0AALTER+TABLE+%60my_table3%60+ADD+%60date%60+varchar%2825%29+COLLATE+utf8_czech_ci+DEFAULT+NULL+AFTER+%60test%60%3B+ALTER+TABLE+%60my_table3%60+ADD+%60test2%60+varchar%2825%29+COLLATE+utf8_czech_ci+DEFAULT+NULL+AFTER+%60date%60%3B%0A%0AALTER+TABLE+%60my_table3%60+CHANGE+%60test2%60+%60test2%60+INT%2810%29+UNSIGNED+NOT+NULL+DEFAULT+%270%27+COMMENT+%270%3Dtest%3B+1%3Dtest2%3B%27%3B%0A'
   14     1        INIT_FCALL                                                   'array_map'
          2        DECLARE_LAMBDA_FUNCTION                              ~3      [0]
   16     3        SEND_VAL                                                     ~3
          4        INIT_FCALL                                                   'preg_split'
          5        SEND_VAL                                                     '%7E%5C%28%5B%5E%29%5D%2A%5C%29%28%2ASKIP%29%28%2AF%29%7C%28%3F%3C%3D%3B%29%28%3F%3D%5Ch%2A%24%7C%5Cs%2A%5CbALTER+TABLE%5Cb%29%7Em'
          6        FRAMELESS_ICALL_1                trim                ~4      !0
          7        SEND_VAL                                                     ~4
          8        SEND_VAL                                                     -1
          9        SEND_VAL                                                     1
         10        DO_ICALL                                             $5      
         11        SEND_VAR                                                     $5
   14    12        DO_ICALL                                             $6      
         13        ASSIGN                                                       !1, $6
   18    14        INIT_FCALL                                                   'print_r'
         15        SEND_VAR                                                     !1
         16        DO_ICALL                                                     
         17      > RETURN                                                       1


Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/l6677
function name:  {closure:/in/l6677:14}
number of ops:  6
compiled vars:  !0 = $x
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   14     0  E >   RECV                                                 !0      
   15     1        FRAMELESS_ICALL_3                preg_replace        ~1      '%2F%5CR%2F', ''
          2        OP_DATA                                                      !0
          3        FRAMELESS_ICALL_1                trim                ~2      ~1
          4      > RETURN                                                       ~2
   16     5*     > RETURN                                                       null

End of Dynamic Function 0

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
234.43 ms | 1963 KiB | 16 Q