3v4l.org

run code in 300+ PHP versions simultaneously
<?php $tests = [ "40", // minage=40, maxage=40 "-40", // minage=null, maxage=40 "40-", // minage=40, maxage=null "40-60", // minage=40, maxage=60 "0", // minage=0, maxage=0 "-0", // minage=null, maxage=0 "0-", // minage=0, maxage=null "0-0" // minage=0, maxage=0 ]; foreach($tests as $str) { $minrange = null; $maxrange = null; $parts = explode('-', $str); switch (count($parts)) { case 1: $minrange = $maxrange = intval($parts[0]); break; case 2: $minrange = $parts[0] == "" ? null : intval($parts[0]); $maxrange = $parts[1] == "" ? null : intval($parts[1]); break; } var_export(compact(['minrange', 'maxrange'])); }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 2, Position 2 = 48
Branch analysis from position: 2
2 jumps found. (Code = 78) Position 1 = 3, Position 2 = 48
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 13, Position 2 = 16
Branch analysis from position: 13
2 jumps found. (Code = 44) Position 1 = 15, Position 2 = 21
Branch analysis from position: 15
1 jumps found. (Code = 42) Position 1 = 40
Branch analysis from position: 40
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 21
2 jumps found. (Code = 43) Position 1 = 24, Position 2 = 26
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 29
Branch analysis from position: 29
2 jumps found. (Code = 43) Position 1 = 33, Position 2 = 35
Branch analysis from position: 33
1 jumps found. (Code = 42) Position 1 = 38
Branch analysis from position: 38
1 jumps found. (Code = 42) Position 1 = 40
Branch analysis from position: 40
Branch analysis from position: 35
1 jumps found. (Code = 42) Position 1 = 40
Branch analysis from position: 40
Branch analysis from position: 26
2 jumps found. (Code = 43) Position 1 = 33, Position 2 = 35
Branch analysis from position: 33
Branch analysis from position: 35
Branch analysis from position: 16
1 jumps found. (Code = 42) Position 1 = 40
Branch analysis from position: 40
Branch analysis from position: 48
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 48
filename:       /in/7T7ct
function name:  (null)
number of ops:  50
compiled vars:  !0 = $tests, !1 = $str, !2 = $minrange, !3 = $maxrange, !4 = $parts
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
   14     1      > FE_RESET_R                                       $6      !0, ->48
          2    > > FE_FETCH_R                                               $6, !1, ->48
   15     3    >   ASSIGN                                                   !2, null
   16     4        ASSIGN                                                   !3, null
   17     5        INIT_FCALL                                               'explode'
          6        SEND_VAL                                                 '-'
          7        SEND_VAR                                                 !1
          8        DO_ICALL                                         $9      
          9        ASSIGN                                                   !4, $9
   18    10        COUNT                                            ~11     !4
   19    11        CASE                                                     ~11, 1
         12      > JMPNZ                                                    ~12, ->16
   22    13    >   CASE                                                     ~11, 2
         14      > JMPNZ                                                    ~12, ->21
         15    > > JMP                                                      ->40
   20    16    >   FETCH_DIM_R                                      ~13     !4, 0
         17        CAST                                          4  ~14     ~13
         18        ASSIGN                                           ~15     !3, ~14
         19        ASSIGN                                                   !2, ~15
   21    20      > JMP                                                      ->40
   23    21    >   FETCH_DIM_R                                      ~17     !4, 0
         22        IS_EQUAL                                                 ~17, ''
         23      > JMPZ                                                     ~18, ->26
         24    >   QM_ASSIGN                                        ~19     null
         25      > JMP                                                      ->29
         26    >   FETCH_DIM_R                                      ~20     !4, 0
         27        CAST                                          4  ~21     ~20
         28        QM_ASSIGN                                        ~19     ~21
         29    >   ASSIGN                                                   !2, ~19
   24    30        FETCH_DIM_R                                      ~23     !4, 1
         31        IS_EQUAL                                                 ~23, ''
         32      > JMPZ                                                     ~24, ->35
         33    >   QM_ASSIGN                                        ~25     null
         34      > JMP                                                      ->38
         35    >   FETCH_DIM_R                                      ~26     !4, 1
         36        CAST                                          4  ~27     ~26
         37        QM_ASSIGN                                        ~25     ~27
         38    >   ASSIGN                                                   !3, ~25
   25    39      > JMP                                                      ->40
         40    >   FREE                                                     ~11
   27    41        INIT_FCALL                                               'var_export'
         42        INIT_FCALL                                               'compact'
         43        SEND_VAL                                                 <array>
         44        DO_ICALL                                         $29     
         45        SEND_VAR                                                 $29
         46        DO_ICALL                                                 
   14    47      > JMP                                                      ->2
         48    >   FE_FREE                                                  $6
   28    49      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
252.22 ms | 1017 KiB | 16 Q