3v4l.org

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

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
156.47 ms | 1404 KiB | 21 Q