3v4l.org

run code in 500+ PHP versions simultaneously
<?php echo CASE_LOWER, PHP_EOL; echo CASE_UPPER, PHP_EOL; $arr = ['a' => 1]; echo '===== THESE ARE VALID AND CORRECT =====', PHP_EOL; echo '------ $case is PHP constant -------------', PHP_EOL; var_dump(array_change_key_case($arr, CASE_LOWER)); var_dump(array_change_key_case($arr, CASE_UPPER)); echo '------ $case is integer -------------', PHP_EOL; var_dump(array_change_key_case($arr, 0)); var_dump(array_change_key_case($arr, 1)); echo '===== THE BEHAVIOUR HERE IS UNEXPECTED, I WOULD EXPECT A TYPEERROR =====', PHP_EOL; echo '------- $case is text string ------------', PHP_EOL; var_dump(array_change_key_case($arr, '0')); var_dump(array_change_key_case($arr, '1')); echo '------ $case is float -------------', PHP_EOL; var_dump(array_change_key_case($arr, 0.3)); var_dump(array_change_key_case($arr, 1.4)); echo '------ $case is boolean -------------', PHP_EOL; var_dump(array_change_key_case($arr, false)); var_dump(array_change_key_case($arr, true)); echo '===== WHEN ERRORS ARE ACTUALLY THROWN =====', PHP_EOL; echo '------ $case is invalid value -------------', PHP_EOL; try { var_dump(array_change_key_case($arr, 3)); } catch(Error $e) { echo $e->getMessage(), PHP_EOL; } echo '------ $case is invalid value and invalid type -------------', PHP_EOL; try { var_dump(array_change_key_case($arr, 'text')); } catch(Error $e) { echo $e->getMessage(), PHP_EOL; }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 106
Branch analysis from position: 106
1 jumps found. (Code = 42) Position 1 = 121
Branch analysis from position: 121
1 jumps found. (Code = 62) Position 1 = -2
Found catch point at position: 101
Branch analysis from position: 101
2 jumps found. (Code = 107) Position 1 = 102, Position 2 = -2
Branch analysis from position: 102
1 jumps found. (Code = 42) Position 1 = 121
Branch analysis from position: 121
Found catch point at position: 116
Branch analysis from position: 116
2 jumps found. (Code = 107) Position 1 = 117, Position 2 = -2
Branch analysis from position: 117
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/k8YmZ
function name:  (null)
number of ops:  122
compiled vars:  !0 = $arr, !1 = $e
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ECHO                                                         0
          1        ECHO                                                         '%0A'
    4     2        ECHO                                                         1
          3        ECHO                                                         '%0A'
    6     4        ASSIGN                                                       !0, <array>
    8     5        ECHO                                                         '%3D%3D%3D%3D%3D+THESE+ARE+VALID+AND+CORRECT+%3D%3D%3D%3D%3D'
          6        ECHO                                                         '%0A'
   10     7        ECHO                                                         '------+%24case+is+PHP+constant+-------------'
          8        ECHO                                                         '%0A'
   12     9        INIT_FCALL                                                   'var_dump'
         10        INIT_FCALL                                                   'array_change_key_case'
         11        SEND_VAR                                                     !0
         12        SEND_VAL                                                     0
         13        DO_ICALL                                             $3      
         14        SEND_VAR                                                     $3
         15        DO_ICALL                                                     
   13    16        INIT_FCALL                                                   'var_dump'
         17        INIT_FCALL                                                   'array_change_key_case'
         18        SEND_VAR                                                     !0
         19        SEND_VAL                                                     1
         20        DO_ICALL                                             $5      
         21        SEND_VAR                                                     $5
         22        DO_ICALL                                                     
   15    23        ECHO                                                         '------+%24case+is+integer+-------------'
         24        ECHO                                                         '%0A'
   17    25        INIT_FCALL                                                   'var_dump'
         26        INIT_FCALL                                                   'array_change_key_case'
         27        SEND_VAR                                                     !0
         28        SEND_VAL                                                     0
         29        DO_ICALL                                             $7      
         30        SEND_VAR                                                     $7
         31        DO_ICALL                                                     
   18    32        INIT_FCALL                                                   'var_dump'
         33        INIT_FCALL                                                   'array_change_key_case'
         34        SEND_VAR                                                     !0
         35        SEND_VAL                                                     1
         36        DO_ICALL                                             $9      
         37        SEND_VAR                                                     $9
         38        DO_ICALL                                                     
   20    39        ECHO                                                         '%3D%3D%3D%3D%3D+THE+BEHAVIOUR+HERE+IS+UNEXPECTED%2C+I+WOULD+EXPECT+A+TYPEERROR+%3D%3D%3D%3D%3D'
         40        ECHO                                                         '%0A'
   22    41        ECHO                                                         '-------+%24case+is+text+string+------------'
         42        ECHO                                                         '%0A'
   24    43        INIT_FCALL                                                   'var_dump'
         44        INIT_FCALL                                                   'array_change_key_case'
         45        SEND_VAR                                                     !0
         46        SEND_VAL                                                     '0'
         47        DO_ICALL                                             $11     
         48        SEND_VAR                                                     $11
         49        DO_ICALL                                                     
   25    50        INIT_FCALL                                                   'var_dump'
         51        INIT_FCALL                                                   'array_change_key_case'
         52        SEND_VAR                                                     !0
         53        SEND_VAL                                                     '1'
         54        DO_ICALL                                             $13     
         55        SEND_VAR                                                     $13
         56        DO_ICALL                                                     
   27    57        ECHO                                                         '------+%24case+is+float+-------------'
         58        ECHO                                                         '%0A'
   29    59        INIT_FCALL                                                   'var_dump'
         60        INIT_FCALL                                                   'array_change_key_case'
         61        SEND_VAR                                                     !0
         62        SEND_VAL                                                     0.3
         63        DO_ICALL                                             $15     
         64        SEND_VAR                                                     $15
         65        DO_ICALL                                                     
   30    66        INIT_FCALL                                                   'var_dump'
         67        INIT_FCALL                                                   'array_change_key_case'
         68        SEND_VAR                                                     !0
         69        SEND_VAL                                                     1.4
         70        DO_ICALL                                             $17     
         71        SEND_VAR                                                     $17
         72        DO_ICALL                                                     
   32    73        ECHO                                                         '------+%24case+is+boolean+-------------'
         74        ECHO                                                         '%0A'
   34    75        INIT_FCALL                                                   'var_dump'
         76        INIT_FCALL                                                   'array_change_key_case'
         77        SEND_VAR                                                     !0
         78        SEND_VAL                                                     <false>
         79        DO_ICALL                                             $19     
         80        SEND_VAR                                                     $19
         81        DO_ICALL                                                     
   35    82        INIT_FCALL                                                   'var_dump'
         83        INIT_FCALL                                                   'array_change_key_case'
         84        SEND_VAR                                                     !0
         85        SEND_VAL                                                     <true>
         86        DO_ICALL                                             $21     
         87        SEND_VAR                                                     $21
         88        DO_ICALL                                                     
   37    89        ECHO                                                         '%3D%3D%3D%3D%3D+WHEN+ERRORS+ARE+ACTUALLY+THROWN+%3D%3D%3D%3D%3D'
         90        ECHO                                                         '%0A'
   39    91        ECHO                                                         '------+%24case+is+invalid+value+-------------'
         92        ECHO                                                         '%0A'
   42    93        INIT_FCALL                                                   'var_dump'
         94        INIT_FCALL                                                   'array_change_key_case'
         95        SEND_VAR                                                     !0
         96        SEND_VAL                                                     3
         97        DO_ICALL                                             $23     
         98        SEND_VAR                                                     $23
         99        DO_ICALL                                                     
        100      > JMP                                                          ->106
   43   101  E > > CATCH                                           last         'Error'
   44   102    >   INIT_METHOD_CALL                                             !1, 'getMessage'
        103        DO_FCALL                                          0  $25     
        104        ECHO                                                         $25
        105        ECHO                                                         '%0A'
   47   106    >   ECHO                                                         '------+%24case+is+invalid+value+and+invalid+type+-------------'
        107        ECHO                                                         '%0A'
   50   108        INIT_FCALL                                                   'var_dump'
        109        INIT_FCALL                                                   'array_change_key_case'
        110        SEND_VAR                                                     !0
        111        SEND_VAL                                                     'text'
        112        DO_ICALL                                             $26     
        113        SEND_VAR                                                     $26
        114        DO_ICALL                                                     
        115      > JMP                                                          ->121
   51   116  E > > CATCH                                           last         'Error'
   52   117    >   INIT_METHOD_CALL                                             !1, 'getMessage'
        118        DO_FCALL                                          0  $28     
        119        ECHO                                                         $28
        120        ECHO                                                         '%0A'
   53   121    > > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
168.71 ms | 890 KiB | 10 Q