3v4l.org

run code in 300+ PHP versions simultaneously
<?php var_dump(defined('JSON_C_VERSION') ? JSON_C_VERSION : NULL); var_dump(PHP_INI_SIZE); echo "JSON_BIGINT_AS_STRING:\n"; var_dump(json_decode('[12345678901234567890]', TRUE, 512, JSON_BIGINT_AS_STRING)); var_dump(json_last_error()); var_dump(PHP_VERSION_ID >= 50500 ? json_last_error_msg() : '?'); echo "Invalid UTF-8 input:\n"; var_dump(json_decode("\"\xff\"")); var_dump(json_last_error()); var_dump(PHP_VERSION_ID >= 50500 ? json_last_error_msg() : '?'); echo "Valid UTF-8 input, but the result can not be (lead surrogate followed by lead surrogate):\n"; var_dump(json_decode('"\uD811\uD811"')); var_dump(json_last_error()); var_dump(PHP_VERSION_ID >= 50500 ? json_last_error_msg() : '?'); echo "Fatal error:\n"; var_dump(json_decode('{"\u0000": 1}')); var_dump(json_last_error()); var_dump(PHP_VERSION_ID >= 50500 ? json_last_error_msg() : '?');
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 6
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 7
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 30, Position 2 = 34
Branch analysis from position: 30
1 jumps found. (Code = 42) Position 1 = 35
Branch analysis from position: 35
2 jumps found. (Code = 43) Position 1 = 51, Position 2 = 55
Branch analysis from position: 51
1 jumps found. (Code = 42) Position 1 = 56
Branch analysis from position: 56
2 jumps found. (Code = 43) Position 1 = 72, Position 2 = 76
Branch analysis from position: 72
1 jumps found. (Code = 42) Position 1 = 77
Branch analysis from position: 77
2 jumps found. (Code = 43) Position 1 = 93, Position 2 = 97
Branch analysis from position: 93
1 jumps found. (Code = 42) Position 1 = 98
Branch analysis from position: 98
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 97
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 76
2 jumps found. (Code = 43) Position 1 = 93, Position 2 = 97
Branch analysis from position: 93
Branch analysis from position: 97
Branch analysis from position: 55
2 jumps found. (Code = 43) Position 1 = 72, Position 2 = 76
Branch analysis from position: 72
Branch analysis from position: 76
Branch analysis from position: 34
2 jumps found. (Code = 43) Position 1 = 51, Position 2 = 55
Branch analysis from position: 51
Branch analysis from position: 55
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 30, Position 2 = 34
Branch analysis from position: 30
Branch analysis from position: 34
filename:       /in/HDndT
function name:  (null)
number of ops:  101
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   INIT_FCALL                                               'var_dump'
          1        DEFINED                                                  'JSON_C_VERSION'
          2      > JMPZ                                                     ~0, ->6
          3    >   FETCH_CONSTANT                                   ~1      'JSON_C_VERSION'
          4        QM_ASSIGN                                        ~2      ~1
          5      > JMP                                                      ->7
          6    >   QM_ASSIGN                                        ~2      null
          7    >   SEND_VAL                                                 ~2
          8        DO_ICALL                                                 
    3     9        INIT_FCALL                                               'var_dump'
         10        FETCH_CONSTANT                                   ~4      'PHP_INI_SIZE'
         11        SEND_VAL                                                 ~4
         12        DO_ICALL                                                 
    5    13        ECHO                                                     'JSON_BIGINT_AS_STRING%3A%0A'
    6    14        INIT_FCALL                                               'var_dump'
         15        INIT_FCALL                                               'json_decode'
         16        SEND_VAL                                                 '%5B12345678901234567890%5D'
         17        SEND_VAL                                                 <true>
         18        SEND_VAL                                                 512
         19        SEND_VAL                                                 2
         20        DO_ICALL                                         $6      
         21        SEND_VAR                                                 $6
         22        DO_ICALL                                                 
    7    23        INIT_FCALL                                               'var_dump'
         24        INIT_FCALL                                               'json_last_error'
         25        DO_ICALL                                         $8      
         26        SEND_VAR                                                 $8
         27        DO_ICALL                                                 
    8    28        INIT_FCALL                                               'var_dump'
         29      > JMPZ                                                     <true>, ->34
         30    >   INIT_FCALL                                               'json_last_error_msg'
         31        DO_ICALL                                         $10     
         32        QM_ASSIGN                                        ~11     $10
         33      > JMP                                                      ->35
         34    >   QM_ASSIGN                                        ~11     '%3F'
         35    >   SEND_VAL                                                 ~11
         36        DO_ICALL                                                 
   10    37        ECHO                                                     'Invalid+UTF-8+input%3A%0A'
   11    38        INIT_FCALL                                               'var_dump'
         39        INIT_FCALL                                               'json_decode'
         40        SEND_VAL                                                 '%22%FF%22'
         41        DO_ICALL                                         $13     
         42        SEND_VAR                                                 $13
         43        DO_ICALL                                                 
   12    44        INIT_FCALL                                               'var_dump'
         45        INIT_FCALL                                               'json_last_error'
         46        DO_ICALL                                         $15     
         47        SEND_VAR                                                 $15
         48        DO_ICALL                                                 
   13    49        INIT_FCALL                                               'var_dump'
         50      > JMPZ                                                     <true>, ->55
         51    >   INIT_FCALL                                               'json_last_error_msg'
         52        DO_ICALL                                         $17     
         53        QM_ASSIGN                                        ~18     $17
         54      > JMP                                                      ->56
         55    >   QM_ASSIGN                                        ~18     '%3F'
         56    >   SEND_VAL                                                 ~18
         57        DO_ICALL                                                 
   15    58        ECHO                                                     'Valid+UTF-8+input%2C+but+the+result+can+not+be+%28lead+surrogate+followed+by+lead+surrogate%29%3A%0A'
   16    59        INIT_FCALL                                               'var_dump'
         60        INIT_FCALL                                               'json_decode'
         61        SEND_VAL                                                 '%22%5CuD811%5CuD811%22'
         62        DO_ICALL                                         $20     
         63        SEND_VAR                                                 $20
         64        DO_ICALL                                                 
   17    65        INIT_FCALL                                               'var_dump'
         66        INIT_FCALL                                               'json_last_error'
         67        DO_ICALL                                         $22     
         68        SEND_VAR                                                 $22
         69        DO_ICALL                                                 
   18    70        INIT_FCALL                                               'var_dump'
         71      > JMPZ                                                     <true>, ->76
         72    >   INIT_FCALL                                               'json_last_error_msg'
         73        DO_ICALL                                         $24     
         74        QM_ASSIGN                                        ~25     $24
         75      > JMP                                                      ->77
         76    >   QM_ASSIGN                                        ~25     '%3F'
         77    >   SEND_VAL                                                 ~25
         78        DO_ICALL                                                 
   20    79        ECHO                                                     'Fatal+error%3A%0A'
   21    80        INIT_FCALL                                               'var_dump'
         81        INIT_FCALL                                               'json_decode'
         82        SEND_VAL                                                 '%7B%22%5Cu0000%22%3A+1%7D'
         83        DO_ICALL                                         $27     
         84        SEND_VAR                                                 $27
         85        DO_ICALL                                                 
   22    86        INIT_FCALL                                               'var_dump'
         87        INIT_FCALL                                               'json_last_error'
         88        DO_ICALL                                         $29     
         89        SEND_VAR                                                 $29
         90        DO_ICALL                                                 
   23    91        INIT_FCALL                                               'var_dump'
         92      > JMPZ                                                     <true>, ->97
         93    >   INIT_FCALL                                               'json_last_error_msg'
         94        DO_ICALL                                         $31     
         95        QM_ASSIGN                                        ~32     $31
         96      > JMP                                                      ->98
         97    >   QM_ASSIGN                                        ~32     '%3F'
         98    >   SEND_VAL                                                 ~32
         99        DO_ICALL                                                 
        100      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
157.85 ms | 1404 KiB | 21 Q