3v4l.org

run code in 300+ PHP versions simultaneously
<?php $ul = "<ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> </ul>"; function divideUl($ul) { $ulArray = explode(" ", $ul); array_pop($ulArray); array_shift($ulArray); $num = substr_count($ul, '<li>')/3; $sep = round($num); $string = "<ul>"; foreach ($ulArray as $i => $li) { if ($i % $sep === 0 && $i !== 0) $string .= "</ul>"; if ($i % $sep === 0 && $i !== 0) $string .= "<ul>"; $string .= $li; } $string .= "</ul>"; return $string; } echo divideUl($ul);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lqCFF
function name:  (null)
number of ops:  6
compiled vars:  !0 = $ul
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, '%3Cul%3E%0A%3Cli%3E1%3C%2Fli%3E%0A%3Cli%3E2%3C%2Fli%3E%0A%3Cli%3E3%3C%2Fli%3E%0A%3Cli%3E4%3C%2Fli%3E%0A%3Cli%3E5%3C%2Fli%3E%0A%3Cli%3E6%3C%2Fli%3E%0A%3C%2Ful%3E'
   26     1        INIT_FCALL                                               'divideul'
          2        SEND_VAR                                                 !0
          3        DO_FCALL                                      0  $2      
          4        ECHO                                                     $2
          5      > RETURN                                                   1

Function divideul:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 24, Position 2 = 42
Branch analysis from position: 24
2 jumps found. (Code = 78) Position 1 = 25, Position 2 = 42
Branch analysis from position: 25
2 jumps found. (Code = 46) Position 1 = 29, Position 2 = 31
Branch analysis from position: 29
2 jumps found. (Code = 43) Position 1 = 32, Position 2 = 33
Branch analysis from position: 32
2 jumps found. (Code = 46) Position 1 = 36, Position 2 = 38
Branch analysis from position: 36
2 jumps found. (Code = 43) Position 1 = 39, Position 2 = 40
Branch analysis from position: 39
1 jumps found. (Code = 42) Position 1 = 24
Branch analysis from position: 24
Branch analysis from position: 40
Branch analysis from position: 38
Branch analysis from position: 33
Branch analysis from position: 31
Branch analysis from position: 42
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 42
filename:       /in/lqCFF
function name:  divideUl
number of ops:  46
compiled vars:  !0 = $ul, !1 = $ulArray, !2 = $num, !3 = $sep, !4 = $string, !5 = $li, !6 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   10     0  E >   RECV                                             !0      
   11     1        INIT_FCALL                                               'explode'
          2        SEND_VAL                                                 '%0A'
   12     3        SEND_VAR                                                 !0
   11     4        DO_ICALL                                         $7      
          5        ASSIGN                                                   !1, $7
   13     6        INIT_FCALL                                               'array_pop'
          7        SEND_REF                                                 !1
          8        DO_ICALL                                                 
   14     9        INIT_FCALL                                               'array_shift'
         10        SEND_REF                                                 !1
         11        DO_ICALL                                                 
   15    12        INIT_FCALL                                               'substr_count'
         13        SEND_VAR                                                 !0
         14        SEND_VAL                                                 '%3Cli%3E'
         15        DO_ICALL                                         $11     
         16        DIV                                              ~12     $11, 3
         17        ASSIGN                                                   !2, ~12
   16    18        INIT_FCALL                                               'round'
         19        SEND_VAR                                                 !2
         20        DO_ICALL                                         $14     
         21        ASSIGN                                                   !3, $14
   17    22        ASSIGN                                                   !4, '%3Cul%3E'
   18    23      > FE_RESET_R                                       $17     !1, ->42
         24    > > FE_FETCH_R                                       ~18     $17, !5, ->42
         25    >   ASSIGN                                                   !6, ~18
   19    26        MOD                                              ~20     !6, !3
         27        IS_IDENTICAL                                     ~21     ~20, 0
         28      > JMPZ_EX                                          ~21     ~21, ->31
         29    >   IS_NOT_IDENTICAL                                 ~22     !6, 0
         30        BOOL                                             ~21     ~22
         31    > > JMPZ                                                     ~21, ->33
         32    >   ASSIGN_OP                                     8          !4, '%3C%2Ful%3E'
   20    33    >   MOD                                              ~24     !6, !3
         34        IS_IDENTICAL                                     ~25     ~24, 0
         35      > JMPZ_EX                                          ~25     ~25, ->38
         36    >   IS_NOT_IDENTICAL                                 ~26     !6, 0
         37        BOOL                                             ~25     ~26
         38    > > JMPZ                                                     ~25, ->40
         39    >   ASSIGN_OP                                     8          !4, '%3Cul%3E'
   21    40    >   ASSIGN_OP                                     8          !4, !5
   18    41      > JMP                                                      ->24
         42    >   FE_FREE                                                  $17
   23    43        ASSIGN_OP                                     8          !4, '%3C%2Ful%3E'
   24    44      > RETURN                                                   !4
   25    45*     > RETURN                                                   null

End of function divideul

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
156.36 ms | 1022 KiB | 19 Q