3v4l.org

run code in 300+ PHP versions simultaneously
<?php function checkAisle($term) { if (!ctype_alpha($term[0])) { return "First character out of bounds"; } $locations = array_fill_keys(range('A','L'),1)+array_fill_keys(range('M','Z'),2); $letter = strtoupper($term[0]); return "$letter is located on Aisle {$locations[$letter]}."; } echo checkAisle("Trump") , "\n"; echo checkAisle("banana") , "\n"; echo checkAisle("melon") , "\n"; echo checkAisle("guava") , "\n"; echo checkAisle("nectarine") , "\n"; echo checkAisle("lemon") , "\n";
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/TcVX4
function name:  (null)
number of ops:  31
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   11     0  E >   INIT_FCALL                                               'checkaisle'
          1        SEND_VAL                                                 'Trump'
          2        DO_FCALL                                      0  $0      
          3        ECHO                                                     $0
          4        ECHO                                                     '%0A'
   12     5        INIT_FCALL                                               'checkaisle'
          6        SEND_VAL                                                 'banana'
          7        DO_FCALL                                      0  $1      
          8        ECHO                                                     $1
          9        ECHO                                                     '%0A'
   13    10        INIT_FCALL                                               'checkaisle'
         11        SEND_VAL                                                 'melon'
         12        DO_FCALL                                      0  $2      
         13        ECHO                                                     $2
         14        ECHO                                                     '%0A'
   14    15        INIT_FCALL                                               'checkaisle'
         16        SEND_VAL                                                 'guava'
         17        DO_FCALL                                      0  $3      
         18        ECHO                                                     $3
         19        ECHO                                                     '%0A'
   15    20        INIT_FCALL                                               'checkaisle'
         21        SEND_VAL                                                 'nectarine'
         22        DO_FCALL                                      0  $4      
         23        ECHO                                                     $4
         24        ECHO                                                     '%0A'
   16    25        INIT_FCALL                                               'checkaisle'
         26        SEND_VAL                                                 'lemon'
         27        DO_FCALL                                      0  $5      
         28        ECHO                                                     $5
         29        ECHO                                                     '%0A'
         30      > RETURN                                                   1

Function checkaisle:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 8
Branch analysis from position: 7
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/TcVX4
function name:  checkAisle
number of ops:  38
compiled vars:  !0 = $term, !1 = $locations, !2 = $letter
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   RECV                                             !0      
    3     1        INIT_FCALL                                               'ctype_alpha'
          2        FETCH_DIM_R                                      ~3      !0, 0
          3        SEND_VAL                                                 ~3
          4        DO_ICALL                                         $4      
          5        BOOL_NOT                                         ~5      $4
          6      > JMPZ                                                     ~5, ->8
    4     7    > > RETURN                                                   'First+character+out+of+bounds'
    6     8    >   INIT_FCALL                                               'array_fill_keys'
          9        INIT_FCALL                                               'range'
         10        SEND_VAL                                                 'A'
         11        SEND_VAL                                                 'L'
         12        DO_ICALL                                         $6      
         13        SEND_VAR                                                 $6
         14        SEND_VAL                                                 1
         15        DO_ICALL                                         $7      
         16        INIT_FCALL                                               'array_fill_keys'
         17        INIT_FCALL                                               'range'
         18        SEND_VAL                                                 'M'
         19        SEND_VAL                                                 'Z'
         20        DO_ICALL                                         $8      
         21        SEND_VAR                                                 $8
         22        SEND_VAL                                                 2
         23        DO_ICALL                                         $9      
         24        ADD                                              ~10     $7, $9
         25        ASSIGN                                                   !1, ~10
    7    26        INIT_FCALL                                               'strtoupper'
         27        FETCH_DIM_R                                      ~12     !0, 0
         28        SEND_VAL                                                 ~12
         29        DO_ICALL                                         $13     
         30        ASSIGN                                                   !2, $13
    8    31        ROPE_INIT                                     4  ~17     !2
         32        ROPE_ADD                                      1  ~17     ~17, '+is+located+on+Aisle+'
         33        FETCH_DIM_R                                      ~15     !1, !2
         34        ROPE_ADD                                      2  ~17     ~17, ~15
         35        ROPE_END                                      3  ~16     ~17, '.'
         36      > RETURN                                                   ~16
    9    37*     > RETURN                                                   null

End of function checkaisle

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
297.62 ms | 1021 KiB | 23 Q