3v4l.org

run code in 300+ PHP versions simultaneously
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/iqgnf
function name:  (null)
number of ops:  55
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  100     0  E >   INIT_FCALL                                               'var_dump'
          1        INIT_FCALL                                               'is_serialized'
          2        INIT_FCALL                                               'serialize'
          3        SEND_VAL                                                 null
          4        DO_ICALL                                         $0      
          5        SEND_VAR                                                 $0
          6        DO_FCALL                                      0  $1      
          7        SEND_VAR                                                 $1
          8        DO_ICALL                                                 
  101     9        INIT_FCALL                                               'var_dump'
         10        INIT_FCALL                                               'is_serialized_string'
         11        INIT_FCALL                                               'serialize'
         12        SEND_VAL                                                 null
         13        DO_ICALL                                         $3      
         14        SEND_VAR                                                 $3
         15        DO_FCALL                                      0  $4      
         16        SEND_VAR                                                 $4
         17        DO_ICALL                                                 
  103    18        INIT_FCALL                                               'var_dump'
         19        INIT_FCALL                                               'is_serialized'
         20        INIT_FCALL                                               'serialize'
         21        SEND_VAL                                                 <array>
         22        DO_ICALL                                         $6      
         23        SEND_VAR                                                 $6
         24        DO_FCALL                                      0  $7      
         25        SEND_VAR                                                 $7
         26        DO_ICALL                                                 
  104    27        INIT_FCALL                                               'var_dump'
         28        INIT_FCALL                                               'is_serialized_string'
         29        INIT_FCALL                                               'serialize'
         30        SEND_VAL                                                 <array>
         31        DO_ICALL                                         $9      
         32        SEND_VAR                                                 $9
         33        DO_FCALL                                      0  $10     
         34        SEND_VAR                                                 $10
         35        DO_ICALL                                                 
  106    36        INIT_FCALL                                               'var_dump'
         37        INIT_FCALL                                               'is_serialized'
         38        INIT_FCALL                                               'serialize'
         39        SEND_VAL                                                 'hello'
         40        DO_ICALL                                         $12     
         41        SEND_VAR                                                 $12
         42        DO_FCALL                                      0  $13     
         43        SEND_VAR                                                 $13
         44        DO_ICALL                                                 
  107    45        INIT_FCALL                                               'var_dump'
         46        INIT_FCALL                                               'is_serialized_string'
         47        INIT_FCALL                                               'serialize'
         48        SEND_VAL                                                 'hello'
         49        DO_ICALL                                         $15     
         50        SEND_VAR                                                 $15
         51        DO_FCALL                                      0  $16     
         52        SEND_VAR                                                 $16
         53        DO_ICALL                                                 
         54      > RETURN                                                   1

Function is_serialized:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 6
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 12, Position 2 = 13
Branch analysis from position: 12
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 16, Position 2 = 17
Branch analysis from position: 16
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 20, Position 2 = 21
Branch analysis from position: 20
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 21
2 jumps found. (Code = 43) Position 1 = 22, Position 2 = 34
Branch analysis from position: 22
2 jumps found. (Code = 46) Position 1 = 29, Position 2 = 31
Branch analysis from position: 29
2 jumps found. (Code = 43) Position 1 = 32, Position 2 = 33
Branch analysis from position: 32
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 33
1 jumps found. (Code = 42) Position 1 = 62
Branch analysis from position: 62
8 jumps found. (Code = 188) Position 1 = 78, Position 2 = 95, Position 3 = 95, Position 4 = 104, Position 5 = 104, Position 6 = 104, Position 7 = 120, Position 8 = 65
Branch analysis from position: 78
2 jumps found. (Code = 43) Position 1 = 79, Position 2 = 88
Branch analysis from position: 79
2 jumps found. (Code = 43) Position 1 = 86, Position 2 = 87
Branch analysis from position: 86
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 87
1 jumps found. (Code = 42) Position 1 = 95
Branch analysis from position: 95
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 88
2 jumps found. (Code = 43) Position 1 = 94, Position 2 = 95
Branch analysis from position: 94
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 95
Branch analysis from position: 95
Branch analysis from position: 95
Branch analysis from position: 104
2 jumps found. (Code = 43) Position 1 = 105, Position 2 = 107
Branch analysis from position: 105
1 jumps found. (Code = 42) Position 1 = 108
Branch analysis from position: 108
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 107
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 104
Branch analysis from position: 104
Branch analysis from position: 120
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 65
2 jumps found. (Code = 44) Position 1 = 67, Position 2 = 78
Branch analysis from position: 67
2 jumps found. (Code = 44) Position 1 = 69, Position 2 = 95
Branch analysis from position: 69
2 jumps found. (Code = 44) Position 1 = 71, Position 2 = 95
Branch analysis from position: 71
2 jumps found. (Code = 44) Position 1 = 73, Position 2 = 104
Branch analysis from position: 73
2 jumps found. (Code = 44) Position 1 = 75, Position 2 = 104
Branch analysis from position: 75
2 jumps found. (Code = 44) Position 1 = 77, Position 2 = 104
Branch analysis from position: 77
1 jumps found. (Code = 42) Position 1 = 120
Branch analysis from position: 120
Branch analysis from position: 104
Branch analysis from position: 104
Branch analysis from position: 104
Branch analysis from position: 95
Branch analysis from position: 95
Branch analysis from position: 78
Branch analysis from position: 31
Branch analysis from position: 34
2 jumps found. (Code = 46) Position 1 = 46, Position 2 = 48
Branch analysis from position: 46
2 jumps found. (Code = 43) Position 1 = 49, Position 2 = 50
Branch analysis from position: 49
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 50
2 jumps found. (Code = 46) Position 1 = 52, Position 2 = 54
Branch analysis from position: 52
2 jumps found. (Code = 43) Position 1 = 55, Position 2 = 56
Branch analysis from position: 55
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 56
2 jumps found. (Code = 46) Position 1 = 58, Position 2 = 60
Branch analysis from position: 58
2 jumps found. (Code = 43) Position 1 = 61, Position 2 = 62
Branch analysis from position: 61
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 62
Branch analysis from position: 60
Branch analysis from position: 54
Branch analysis from position: 48
filename:       /in/iqgnf
function name:  is_serialized
number of ops:  122
compiled vars:  !0 = $data, !1 = $strict, !2 = $lastc, !3 = $semicolon, !4 = $brace, !5 = $token, !6 = $end
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   15     0  E >   RECV                                             !0      
          1        RECV_INIT                                        !1      <true>
   17     2        TYPE_CHECK                                   64  ~7      !0
          3        BOOL_NOT                                         ~8      ~7
          4      > JMPZ                                                     ~8, ->6
   18     5    > > RETURN                                                   <false>
   20     6    >   INIT_FCALL                                               'trim'
          7        SEND_VAR                                                 !0
          8        DO_ICALL                                         $9      
          9        ASSIGN                                                   !0, $9
   21    10        IS_EQUAL                                                 !0, 'N%3B'
         11      > JMPZ                                                     ~11, ->13
   22    12    > > RETURN                                                   <true>
   24    13    >   STRLEN                                           ~12     !0
         14        IS_SMALLER                                               ~12, 4
         15      > JMPZ                                                     ~13, ->17
   25    16    > > RETURN                                                   <false>
   27    17    >   FETCH_DIM_R                                      ~14     !0, 1
         18        IS_NOT_IDENTICAL                                         ~14, '%3A'
         19      > JMPZ                                                     ~15, ->21
   28    20    > > RETURN                                                   <false>
   30    21    > > JMPZ                                                     !1, ->34
   31    22    >   INIT_FCALL                                               'substr'
         23        SEND_VAR                                                 !0
         24        SEND_VAL                                                 -1
         25        DO_ICALL                                         $16     
         26        ASSIGN                                                   !2, $16
   32    27        IS_NOT_IDENTICAL                                 ~18     !2, '%3B'
         28      > JMPZ_EX                                          ~18     ~18, ->31
         29    >   IS_NOT_IDENTICAL                                 ~19     !2, '%7D'
         30        BOOL                                             ~18     ~19
         31    > > JMPZ                                                     ~18, ->33
   33    32    > > RETURN                                                   <false>
   30    33    > > JMP                                                      ->62
   36    34    >   INIT_FCALL                                               'strpos'
         35        SEND_VAR                                                 !0
         36        SEND_VAL                                                 '%3B'
         37        DO_ICALL                                         $20     
         38        ASSIGN                                                   !3, $20
   37    39        INIT_FCALL                                               'strpos'
         40        SEND_VAR                                                 !0
         41        SEND_VAL                                                 '%7D'
         42        DO_ICALL                                         $22     
         43        ASSIGN                                                   !4, $22
   39    44        TYPE_CHECK                                    4  ~24     !3
         45      > JMPZ_EX                                          ~24     ~24, ->48
         46    >   TYPE_CHECK                                    4  ~25     !4
         47        BOOL                                             ~24     ~25
         48    > > JMPZ                                                     ~24, ->50
   40    49    > > RETURN                                                   <false>
   42    50    >   TYPE_CHECK                                  1018  ~26     !3
         51      > JMPZ_EX                                          ~26     ~26, ->54
         52    >   IS_SMALLER                                       ~27     !3, 3
         53        BOOL                                             ~26     ~27
         54    > > JMPZ                                                     ~26, ->56
   43    55    > > RETURN                                                   <false>
   44    56    >   TYPE_CHECK                                  1018  ~28     !4
         57      > JMPZ_EX                                          ~28     ~28, ->60
         58    >   IS_SMALLER                                       ~29     !4, 4
         59        BOOL                                             ~28     ~29
         60    > > JMPZ                                                     ~28, ->62
   45    61    > > RETURN                                                   <false>
   47    62    >   FETCH_DIM_R                                      ~30     !0, 0
         63        ASSIGN                                                   !5, ~30
   48    64      > SWITCH_STRING                                            !5, [ 's':->78, 'a':->95, 'O':->95, 'b':->104, 'i':->104, 'd':->104, ], ->120
   49    65    >   IS_EQUAL                                                 !5, 's'
         66      > JMPNZ                                                    ~32, ->78
   58    67    >   IS_EQUAL                                                 !5, 'a'
         68      > JMPNZ                                                    ~32, ->95
   59    69    >   IS_EQUAL                                                 !5, 'O'
         70      > JMPNZ                                                    ~32, ->95
   61    71    >   IS_EQUAL                                                 !5, 'b'
         72      > JMPNZ                                                    ~32, ->104
   62    73    >   IS_EQUAL                                                 !5, 'i'
         74      > JMPNZ                                                    ~32, ->104
   63    75    >   IS_EQUAL                                                 !5, 'd'
         76      > JMPNZ                                                    ~32, ->104
         77    > > JMP                                                      ->120
   50    78    > > JMPZ                                                     !1, ->88
   51    79    >   INIT_FCALL                                               'substr'
         80        SEND_VAR                                                 !0
         81        SEND_VAL                                                 -2
         82        SEND_VAL                                                 1
         83        DO_ICALL                                         $33     
         84        IS_NOT_IDENTICAL                                         $33, '%22'
         85      > JMPZ                                                     ~34, ->87
   52    86    > > RETURN                                                   <false>
   50    87    > > JMP                                                      ->95
   54    88    >   INIT_FCALL                                               'strpos'
         89        SEND_VAR                                                 !0
         90        SEND_VAL                                                 '%22'
         91        DO_ICALL                                         $35     
         92        TYPE_CHECK                                    4          $35
         93      > JMPZ                                                     ~36, ->95
   55    94    > > RETURN                                                   <false>
   60    95    >   INIT_FCALL                                               'preg_match'
         96        ROPE_INIT                                     3  ~38     '%2F%5E'
         97        ROPE_ADD                                      1  ~38     ~38, !5
         98        ROPE_END                                      2  ~37     ~38, '%3A%5B0-9%5D%2B%3A%2Fs'
         99        SEND_VAL                                                 ~37
        100        SEND_VAR                                                 !0
        101        DO_ICALL                                         $40     
        102        BOOL                                             ~41     $40
        103      > RETURN                                                   ~41
   64   104    > > JMPZ                                                     !1, ->107
        105    >   QM_ASSIGN                                        ~42     '%24'
        106      > JMP                                                      ->108
        107    >   QM_ASSIGN                                        ~42     ''
        108    >   ASSIGN                                                   !6, ~42
   65   109        INIT_FCALL                                               'preg_match'
        110        ROPE_INIT                                     5  ~45     '%2F%5E'
        111        ROPE_ADD                                      1  ~45     ~45, !5
        112        ROPE_ADD                                      2  ~45     ~45, '%3A%5B0-9.E-%5D%2B%3B'
        113        ROPE_ADD                                      3  ~45     ~45, !6
        114        ROPE_END                                      4  ~44     ~45, '%2F'
        115        SEND_VAL                                                 ~44
        116        SEND_VAR                                                 !0
        117        DO_ICALL                                         $48     
        118        BOOL                                             ~49     $48
        119      > RETURN                                                   ~49
   67   120    > > RETURN                                                   <false>
   68   121*     > RETURN                                                   null

End of function is_serialized

Function is_serialized_string:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 5
Branch analysis from position: 4
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 5
2 jumps found. (Code = 43) Position 1 = 12, Position 2 = 14
Branch analysis from position: 12
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 14
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 19
Branch analysis from position: 17
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 27
Branch analysis from position: 25
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 27
2 jumps found. (Code = 43) Position 1 = 30, Position 2 = 32
Branch analysis from position: 30
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 32
2 jumps found. (Code = 43) Position 1 = 39, Position 2 = 41
Branch analysis from position: 39
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 41
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/iqgnf
function name:  is_serialized_string
number of ops:  43
compiled vars:  !0 = $data
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   78     0  E >   RECV                                             !0      
   80     1        TYPE_CHECK                                   64  ~1      !0
          2        BOOL_NOT                                         ~2      ~1
          3      > JMPZ                                                     ~2, ->5
   81     4    > > RETURN                                                   <false>
   83     5    >   INIT_FCALL                                               'trim'
          6        SEND_VAR                                                 !0
          7        DO_ICALL                                         $3      
          8        ASSIGN                                                   !0, $3
   84     9        STRLEN                                           ~5      !0
         10        IS_SMALLER                                               ~5, 4
         11      > JMPZ                                                     ~6, ->14
   85    12    > > RETURN                                                   <false>
   84    13*       JMP                                                      ->42
   86    14    >   FETCH_DIM_R                                      ~7      !0, 1
         15        IS_NOT_IDENTICAL                                         ~7, '%3A'
         16      > JMPZ                                                     ~8, ->19
   87    17    > > RETURN                                                   <false>
   86    18*       JMP                                                      ->42
   88    19    >   INIT_FCALL                                               'substr'
         20        SEND_VAR                                                 !0
         21        SEND_VAL                                                 -1
         22        DO_ICALL                                         $9      
         23        IS_NOT_IDENTICAL                                         $9, '%3B'
         24      > JMPZ                                                     ~10, ->27
   89    25    > > RETURN                                                   <false>
   88    26*       JMP                                                      ->42
   90    27    >   FETCH_DIM_R                                      ~11     !0, 0
         28        IS_NOT_IDENTICAL                                         ~11, 's'
         29      > JMPZ                                                     ~12, ->32
   91    30    > > RETURN                                                   <false>
   90    31*       JMP                                                      ->42
   92    32    >   INIT_FCALL                                               'substr'
         33        SEND_VAR                                                 !0
         34        SEND_VAL                                                 -2
         35        SEND_VAL                                                 1
         36        DO_ICALL                                         $13     
         37        IS_NOT_IDENTICAL                                         $13, '%22'
         38      > JMPZ                                                     ~14, ->41
   93    39    > > RETURN                                                   <false>
   92    40*       JMP                                                      ->42
   95    41    > > RETURN                                                   <true>
   97    42*     > RETURN                                                   null

End of function is_serialized_string

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
202.17 ms | 1000 KiB | 25 Q