3v4l.org

run code in 300+ PHP versions simultaneously
<?php function interval_format($value, $source = 'seconds'){ $hours = 0; $minutes = 0; $seconds = 0; switch($source){ case 's': case 'seconds': $seconds = $value % 60; $value = $minutes = (int)($value / 60); case 'm': case 'minutes': $minutes = $value % 60; $value = $hours = (int)($value / 60); case 'h': case 'hours': $hours= $value % 24; $value = $days = (int)($value / 25); } $str = ''; if(!empty($hours)) $str .= sprintf('%u %s ', $hours, ('Sekunden')); if(!empty($minutes)) $str .= sprintf('%u %s ', $minutes, ('Minuten')); if(!empty($seconds)) $str .= sprintf('%u %s ', $seconds, ('Sekunden')); return trim($str); } echo interval_format(90);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/BXWaZ
function name:  (null)
number of ops:  5
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   39     0  E >   INIT_FCALL                                               'interval_format'
          1        SEND_VAL                                                 90
          2        DO_FCALL                                      0  $0      
          3        ECHO                                                     $0
          4      > RETURN                                                   1

Function interval_format:
Finding entry points
Branch analysis from position: 0
8 jumps found. (Code = 188) Position 1 = 19, Position 2 = 19, Position 3 = 25, Position 4 = 25, Position 5 = 31, Position 6 = 31, Position 7 = 37, Position 8 = 6
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 41, Position 2 = 47
Branch analysis from position: 41
2 jumps found. (Code = 43) Position 1 = 50, Position 2 = 56
Branch analysis from position: 50
2 jumps found. (Code = 43) Position 1 = 59, Position 2 = 65
Branch analysis from position: 59
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 65
Branch analysis from position: 56
Branch analysis from position: 47
Branch analysis from position: 19
Branch analysis from position: 25
Branch analysis from position: 25
Branch analysis from position: 31
Branch analysis from position: 31
Branch analysis from position: 37
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 19
Branch analysis from position: 8
2 jumps found. (Code = 44) Position 1 = 10, Position 2 = 19
Branch analysis from position: 10
2 jumps found. (Code = 44) Position 1 = 12, Position 2 = 25
Branch analysis from position: 12
2 jumps found. (Code = 44) Position 1 = 14, Position 2 = 25
Branch analysis from position: 14
2 jumps found. (Code = 44) Position 1 = 16, Position 2 = 31
Branch analysis from position: 16
2 jumps found. (Code = 44) Position 1 = 18, Position 2 = 31
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 37
Branch analysis from position: 37
Branch analysis from position: 31
Branch analysis from position: 31
Branch analysis from position: 25
Branch analysis from position: 25
Branch analysis from position: 19
Branch analysis from position: 19
filename:       /in/BXWaZ
function name:  interval_format
number of ops:  70
compiled vars:  !0 = $value, !1 = $source, !2 = $hours, !3 = $minutes, !4 = $seconds, !5 = $days, !6 = $str
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   RECV                                             !0      
          1        RECV_INIT                                        !1      'seconds'
    3     2        ASSIGN                                                   !2, 0
    4     3        ASSIGN                                                   !3, 0
    5     4        ASSIGN                                                   !4, 0
    7     5      > SWITCH_STRING                                            !1, [ 's':->19, 'seconds':->19, 'm':->25, 'minutes':->25, 'h':->31, 'hours':->31, ], ->37
    8     6    >   IS_EQUAL                                                 !1, 's'
          7      > JMPNZ                                                    ~10, ->19
    9     8    >   IS_EQUAL                                                 !1, 'seconds'
          9      > JMPNZ                                                    ~10, ->19
   13    10    >   IS_EQUAL                                                 !1, 'm'
         11      > JMPNZ                                                    ~10, ->25
   14    12    >   IS_EQUAL                                                 !1, 'minutes'
         13      > JMPNZ                                                    ~10, ->25
   18    14    >   IS_EQUAL                                                 !1, 'h'
         15      > JMPNZ                                                    ~10, ->31
   19    16    >   IS_EQUAL                                                 !1, 'hours'
         17      > JMPNZ                                                    ~10, ->31
         18    > > JMP                                                      ->37
   10    19    >   MOD                                              ~11     !0, 60
         20        ASSIGN                                                   !4, ~11
   11    21        DIV                                              ~13     !0, 60
         22        CAST                                          4  ~14     ~13
         23        ASSIGN                                           ~15     !3, ~14
         24        ASSIGN                                                   !0, ~15
   15    25    >   MOD                                              ~17     !0, 60
         26        ASSIGN                                                   !3, ~17
   16    27        DIV                                              ~19     !0, 60
         28        CAST                                          4  ~20     ~19
         29        ASSIGN                                           ~21     !2, ~20
         30        ASSIGN                                                   !0, ~21
   20    31    >   MOD                                              ~23     !0, 24
         32        ASSIGN                                                   !2, ~23
   21    33        DIV                                              ~25     !0, 25
         34        CAST                                          4  ~26     ~25
         35        ASSIGN                                           ~27     !5, ~26
         36        ASSIGN                                                   !0, ~27
   24    37    >   ASSIGN                                                   !6, ''
   26    38        ISSET_ISEMPTY_CV                                 ~30     !2
         39        BOOL_NOT                                         ~31     ~30
         40      > JMPZ                                                     ~31, ->47
   27    41    >   INIT_FCALL                                               'sprintf'
         42        SEND_VAL                                                 '%25u+%25s+'
         43        SEND_VAR                                                 !2
         44        SEND_VAL                                                 'Sekunden'
         45        DO_ICALL                                         $32     
         46        ASSIGN_OP                                     8          !6, $32
   29    47    >   ISSET_ISEMPTY_CV                                 ~34     !3
         48        BOOL_NOT                                         ~35     ~34
         49      > JMPZ                                                     ~35, ->56
   30    50    >   INIT_FCALL                                               'sprintf'
         51        SEND_VAL                                                 '%25u+%25s+'
         52        SEND_VAR                                                 !3
         53        SEND_VAL                                                 'Minuten'
         54        DO_ICALL                                         $36     
         55        ASSIGN_OP                                     8          !6, $36
   32    56    >   ISSET_ISEMPTY_CV                                 ~38     !4
         57        BOOL_NOT                                         ~39     ~38
         58      > JMPZ                                                     ~39, ->65
   33    59    >   INIT_FCALL                                               'sprintf'
         60        SEND_VAL                                                 '%25u+%25s+'
         61        SEND_VAR                                                 !4
         62        SEND_VAL                                                 'Sekunden'
         63        DO_ICALL                                         $40     
         64        ASSIGN_OP                                     8          !6, $40
   35    65    >   INIT_FCALL                                               'trim'
         66        SEND_VAR                                                 !6
         67        DO_ICALL                                         $42     
         68      > RETURN                                                   $42
   36    69*     > RETURN                                                   null

End of function interval_format

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
172.38 ms | 1407 KiB | 18 Q