3v4l.org

run code in 300+ PHP versions simultaneously
<?php function JSEscape($s) { static $aSearch = array("\xe2\x80\xa9", "\\", "'", "\"", "\r\n", "\r", "\n", "\xe2\x80\xa8", "*/", "</"); static $aReplace = array(" ", "\\\\", "\\'", '\\"', "\n", "\n", "\\n", "\\n", "*\\/", "<\\/"); $val = str_replace($aSearch, $aReplace, $s); return $val; } function PhpToJSObject($arData, $bWS = false, $bSkipTilda = false, $bExtType = false) { static $aSearch = array("\r", "\n"); $bExtType = !!$bExtType; switch(gettype($arData)) { case "array": $i = -1; $j = -1; foreach($arData as $j => $temp) { $i++; if ($j !== $i) break; } if($j === $i) { foreach($arData as $key => $value) { switch(gettype($value)) { case "string": if(strpbrk($value, "'\"\n\r<\\\x80") !== false) $arData[$key] = "'".JSEscape($value)."'"; else $arData[$key] = "'".$value."'"; break; case "array": $arData[$key] = PhpToJSObject($value, $bWS, $bSkipTilda, $bExtType); break; case "boolean": if($value === true) $arData[$key] = 'true'; else $arData[$key] = 'false'; break; case "integer": case "double": if ($bExtType) { $arData[$key] = $value; break; } default: if(strpbrk($value, "'\"\n\r<\\\x80") !== false) $arData[$key] = "'".JSEscape($value)."'"; else $arData[$key] = "'".$value."'"; break; } } return '['.implode(',', $arData).']'; } $sWS = ','.($bWS ? "\n" : ''); $res = ($bWS ? "\n" : '').'{'; $first = true; foreach($arData as $key => $value) { if ($bSkipTilda && substr($key, 0, 1) == '~') continue; if($first) $first = false; else $res .= $sWS; if(strpbrk($key, "'\"\n\r<\\\x80") !== false) $res .= "'".str_replace($aSearch, '', JSEscape($key))."':"; else $res .= "'".$key."':"; switch(gettype($value)) { case "string": if(strpbrk($value, "'\"\n\r<\\\x80") !== false) $res .= "'".JSEscape($value)."'"; else $res .= "'".$value."'"; break; case "array": $res .= PhpToJSObject($value, $bWS, $bSkipTilda, $bExtType); break; case "boolean": if($value === true) $res .= 'true'; else $res .= 'false'; break; case "integer": case "double": if ($bExtType) { $res .= $value; break; } default: if(strpbrk($value, "'\"\n\r<\\\x80") !== false) $res .= "'".JSEscape($value)."'"; else $res .= "'".$value."'"; break; } } $res .= ($bWS ? "\n" : '').'}'; return $res; case "boolean": if($arData === true) return 'true'; else return 'false'; case "integer": case "double": if ($bExtType) { return $arData; } default: if(strpbrk($arData, "'\"\n\r<\\\x80") !== false) return "'".JSEscape($arData)."'"; else return "'".$arData."'"; } } $a=array( "a0" => "b", "a1" => "b", "a2" => "b", "a3" => "b", "b" => "c'", "c" => array(1,2,3), "d" => true, "e" => 15.5 ); print_r(PhpToJSObject($a));
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/EaQ17
function name:  (null)
number of ops:  8
compiled vars:  !0 = $a
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  136     0  E >   ASSIGN                                                   !0, <array>
  146     1        INIT_FCALL                                               'print_r'
          2        INIT_FCALL                                               'phptojsobject'
          3        SEND_VAR                                                 !0
          4        DO_FCALL                                      0  $2      
          5        SEND_VAR                                                 $2
          6        DO_ICALL                                                 
          7      > RETURN                                                   1

Function jsescape:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/EaQ17
function name:  JSEscape
number of ops:  11
compiled vars:  !0 = $s, !1 = $aSearch, !2 = $aReplace, !3 = $val
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   RECV                                             !0      
    4     1        BIND_STATIC                                              !1
    5     2        BIND_STATIC                                              !2
    6     3        INIT_FCALL                                               'str_replace'
          4        SEND_VAR                                                 !1
          5        SEND_VAR                                                 !2
          6        SEND_VAR                                                 !0
          7        DO_ICALL                                         $4      
          8        ASSIGN                                                   !3, $4
    7     9      > RETURN                                                   !3
    8    10*     > RETURN                                                   null

End of function jsescape

Function phptojsobject:
Finding entry points
Branch analysis from position: 0
6 jumps found. (Code = 188) Position 1 = 19, Position 2 = 244, Position 3 = 251, Position 4 = 251, Position 5 = 254, Position 6 = 10
Branch analysis from position: 19
2 jumps found. (Code = 77) Position 1 = 22, Position 2 = 29
Branch analysis from position: 22
2 jumps found. (Code = 78) Position 1 = 23, Position 2 = 29
Branch analysis from position: 23
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 28
Branch analysis from position: 27
1 jumps found. (Code = 42) Position 1 = 29
Branch analysis from position: 29
2 jumps found. (Code = 43) Position 1 = 32, Position 2 = 118
Branch analysis from position: 32
2 jumps found. (Code = 77) Position 1 = 33, Position 2 = 109
Branch analysis from position: 33
2 jumps found. (Code = 78) Position 1 = 34, Position 2 = 109
Branch analysis from position: 34
7 jumps found. (Code = 188) Position 1 = 48, Position 2 = 67, Position 3 = 76, Position 4 = 84, Position 5 = 84, Position 6 = 88, Position 7 = 37
Branch analysis from position: 48
2 jumps found. (Code = 43) Position 1 = 54, Position 2 = 62
Branch analysis from position: 54
1 jumps found. (Code = 42) Position 1 = 66
Branch analysis from position: 66
1 jumps found. (Code = 42) Position 1 = 107
Branch analysis from position: 107
1 jumps found. (Code = 42) Position 1 = 33
Branch analysis from position: 33
Branch analysis from position: 62
1 jumps found. (Code = 42) Position 1 = 107
Branch analysis from position: 107
Branch analysis from position: 67
1 jumps found. (Code = 42) Position 1 = 107
Branch analysis from position: 107
Branch analysis from position: 76
2 jumps found. (Code = 43) Position 1 = 78, Position 2 = 81
Branch analysis from position: 78
1 jumps found. (Code = 42) Position 1 = 83
Branch analysis from position: 83
1 jumps found. (Code = 42) Position 1 = 107
Branch analysis from position: 107
Branch analysis from position: 81
1 jumps found. (Code = 42) Position 1 = 107
Branch analysis from position: 107
Branch analysis from position: 84
2 jumps found. (Code = 43) Position 1 = 85, Position 2 = 88
Branch analysis from position: 85
1 jumps found. (Code = 42) Position 1 = 107
Branch analysis from position: 107
Branch analysis from position: 88
2 jumps found. (Code = 43) Position 1 = 94, Position 2 = 102
Branch analysis from position: 94
1 jumps found. (Code = 42) Position 1 = 106
Branch analysis from position: 106
1 jumps found. (Code = 42) Position 1 = 107
Branch analysis from position: 107
Branch analysis from position: 102
1 jumps found. (Code = 42) Position 1 = 107
Branch analysis from position: 107
Branch analysis from position: 84
Branch analysis from position: 88
Branch analysis from position: 37
2 jumps found. (Code = 44) Position 1 = 39, Position 2 = 48
Branch analysis from position: 39
2 jumps found. (Code = 44) Position 1 = 41, Position 2 = 67
Branch analysis from position: 41
2 jumps found. (Code = 44) Position 1 = 43, Position 2 = 76
Branch analysis from position: 43
2 jumps found. (Code = 44) Position 1 = 45, Position 2 = 84
Branch analysis from position: 45
2 jumps found. (Code = 44) Position 1 = 47, Position 2 = 84
Branch analysis from position: 47
1 jumps found. (Code = 42) Position 1 = 88
Branch analysis from position: 88
Branch analysis from position: 84
Branch analysis from position: 84
Branch analysis from position: 76
Branch analysis from position: 67
Branch analysis from position: 48
Branch analysis from position: 109
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 109
Branch analysis from position: 118
2 jumps found. (Code = 43) Position 1 = 119, Position 2 = 121
Branch analysis from position: 119
1 jumps found. (Code = 42) Position 1 = 122
Branch analysis from position: 122
2 jumps found. (Code = 43) Position 1 = 125, Position 2 = 127
Branch analysis from position: 125
1 jumps found. (Code = 42) Position 1 = 128
Branch analysis from position: 128
2 jumps found. (Code = 77) Position 1 = 132, Position 2 = 235
Branch analysis from position: 132
2 jumps found. (Code = 78) Position 1 = 133, Position 2 = 235
Branch analysis from position: 133
2 jumps found. (Code = 46) Position 1 = 135, Position 2 = 142
Branch analysis from position: 135
2 jumps found. (Code = 43) Position 1 = 143, Position 2 = 144
Branch analysis from position: 143
1 jumps found. (Code = 42) Position 1 = 132
Branch analysis from position: 132
Branch analysis from position: 144
2 jumps found. (Code = 43) Position 1 = 145, Position 2 = 147
Branch analysis from position: 145
1 jumps found. (Code = 42) Position 1 = 148
Branch analysis from position: 148
2 jumps found. (Code = 43) Position 1 = 154, Position 2 = 166
Branch analysis from position: 154
1 jumps found. (Code = 42) Position 1 = 169
Branch analysis from position: 169
7 jumps found. (Code = 188) Position 1 = 182, Position 2 = 199, Position 3 = 207, Position 4 = 213, Position 5 = 213, Position 6 = 216, Position 7 = 171
Branch analysis from position: 182
2 jumps found. (Code = 43) Position 1 = 188, Position 2 = 195
Branch analysis from position: 188
1 jumps found. (Code = 42) Position 1 = 198
Branch analysis from position: 198
1 jumps found. (Code = 42) Position 1 = 233
Branch analysis from position: 233
1 jumps found. (Code = 42) Position 1 = 132
Branch analysis from position: 132
Branch analysis from position: 195
1 jumps found. (Code = 42) Position 1 = 233
Branch analysis from position: 233
Branch analysis from position: 199
1 jumps found. (Code = 42) Position 1 = 233
Branch analysis from position: 233
Branch analysis from position: 207
2 jumps found. (Code = 43) Position 1 = 209, Position 2 = 211
Branch analysis from position: 209
1 jumps found. (Code = 42) Position 1 = 212
Branch analysis from position: 212
1 jumps found. (Code = 42) Position 1 = 233
Branch analysis from position: 233
Branch analysis from position: 211
1 jumps found. (Code = 42) Position 1 = 233
Branch analysis from position: 233
Branch analysis from position: 213
2 jumps found. (Code = 43) Position 1 = 214, Position 2 = 216
Branch analysis from position: 214
1 jumps found. (Code = 42) Position 1 = 233
Branch analysis from position: 233
Branch analysis from position: 216
2 jumps found. (Code = 43) Position 1 = 222, Position 2 = 229
Branch analysis from position: 222
1 jumps found. (Code = 42) Position 1 = 232
Branch analysis from position: 232
1 jumps found. (Code = 42) Position 1 = 233
Branch analysis from position: 233
Branch analysis from position: 229
1 jumps found. (Code = 42) Position 1 = 233
Branch analysis from position: 233
Branch analysis from position: 213
Branch analysis from position: 216
Branch analysis from position: 171
2 jumps found. (Code = 44) Position 1 = 173, Position 2 = 182
Branch analysis from position: 173
2 jumps found. (Code = 44) Position 1 = 175, Position 2 = 199
Branch analysis from position: 175
2 jumps found. (Code = 44) Position 1 = 177, Position 2 = 207
Branch analysis from position: 177
2 jumps found. (Code = 44) Position 1 = 179, Position 2 = 213
Branch analysis from position: 179
2 jumps found. (Code = 44) Position 1 = 181, Position 2 = 213
Branch analysis from position: 181
1 jumps found. (Code = 42) Position 1 = 216
Branch analysis from position: 216
Branch analysis from position: 213
Branch analysis from position: 213
Branch analysis from position: 207
Branch analysis from position: 199
Branch analysis from position: 182
Branch analysis from position: 166
7 jumps found. (Code = 188) Position 1 = 182, Position 2 = 199, Position 3 = 207, Position 4 = 213, Position 5 = 213, Position 6 = 216, Position 7 = 171
Branch analysis from position: 182
Branch analysis from position: 199
Branch analysis from position: 207
Branch analysis from position: 213
Branch analysis from position: 213
Branch analysis from position: 216
Branch analysis from position: 171
Branch analysis from position: 147
2 jumps found. (Code = 43) Position 1 = 154, Position 2 = 166
Branch analysis from position: 154
Branch analysis from position: 166
Branch analysis from position: 142
Branch analysis from position: 235
2 jumps found. (Code = 43) Position 1 = 237, Position 2 = 239
Branch analysis from position: 237
1 jumps found. (Code = 42) Position 1 = 240
Branch analysis from position: 240
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 239
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 235
Branch analysis from position: 127
2 jumps found. (Code = 77) Position 1 = 132, Position 2 = 235
Branch analysis from position: 132
Branch analysis from position: 235
Branch analysis from position: 121
2 jumps found. (Code = 43) Position 1 = 125, Position 2 = 127
Branch analysis from position: 125
Branch analysis from position: 127
Branch analysis from position: 28
1 jumps found. (Code = 42) Position 1 = 22
Branch analysis from position: 22
Branch analysis from position: 29
Branch analysis from position: 29
Branch analysis from position: 244
2 jumps found. (Code = 43) Position 1 = 246, Position 2 = 249
Branch analysis from position: 246
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 249
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 251
2 jumps found. (Code = 43) Position 1 = 252, Position 2 = 254
Branch analysis from position: 252
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 254
2 jumps found. (Code = 43) Position 1 = 260, Position 2 = 268
Branch analysis from position: 260
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 268
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 251
Branch analysis from position: 254
Branch analysis from position: 10
2 jumps found. (Code = 44) Position 1 = 12, Position 2 = 19
Branch analysis from position: 12
2 jumps found. (Code = 44) Position 1 = 14, Position 2 = 244
Branch analysis from position: 14
2 jumps found. (Code = 44) Position 1 = 16, Position 2 = 251
Branch analysis from position: 16
2 jumps found. (Code = 44) Position 1 = 18, Position 2 = 251
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 254
Branch analysis from position: 254
Branch analysis from position: 251
Branch analysis from position: 251
Branch analysis from position: 244
Branch analysis from position: 19
filename:       /in/EaQ17
function name:  PhpToJSObject
number of ops:  274
compiled vars:  !0 = $arData, !1 = $bWS, !2 = $bSkipTilda, !3 = $bExtType, !4 = $aSearch, !5 = $i, !6 = $j, !7 = $temp, !8 = $value, !9 = $key, !10 = $sWS, !11 = $res, !12 = $first
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   10     0  E >   RECV                                             !0      
          1        RECV_INIT                                        !1      <false>
          2        RECV_INIT                                        !2      <false>
          3        RECV_INIT                                        !3      <false>
   12     4        BIND_STATIC                                              !4
   13     5        BOOL_NOT                                         ~13     !3
          6        BOOL_NOT                                         ~14     ~13
          7        ASSIGN                                                   !3, ~14
   15     8        GET_TYPE                                         ~16     !0
          9      > SWITCH_STRING                                            ~16, [ 'array':->19, 'boolean':->244, 'integer':->251, 'double':->251, ], ->254
   17    10    >   CASE                                                     ~16, 'array'
         11      > JMPNZ                                                    ~17, ->19
  118    12    >   CASE                                                     ~16, 'boolean'
         13      > JMPNZ                                                    ~17, ->244
  123    14    >   CASE                                                     ~16, 'integer'
         15      > JMPNZ                                                    ~17, ->251
  124    16    >   CASE                                                     ~16, 'double'
         17      > JMPNZ                                                    ~17, ->251
         18    > > JMP                                                      ->254
   18    19    >   ASSIGN                                                   !5, -1
   19    20        ASSIGN                                                   !6, -1
   20    21      > FE_RESET_R                                       $20     !0, ->29
         22    > > FE_FETCH_R                                       ~21     $20, !7, ->29
         23    >   ASSIGN                                                   !6, ~21
   22    24        PRE_INC                                                  !5
   23    25        IS_NOT_IDENTICAL                                         !6, !5
         26      > JMPZ                                                     ~24, ->28
   24    27    > > JMP                                                      ->29
   20    28    > > JMP                                                      ->22
         29    >   FE_FREE                                                  $20
   27    30        IS_IDENTICAL                                             !6, !5
         31      > JMPZ                                                     ~25, ->118
   29    32    > > FE_RESET_R                                       $26     !0, ->109
         33    > > FE_FETCH_R                                       ~27     $26, !8, ->109
         34    >   ASSIGN                                                   !9, ~27
   31    35        GET_TYPE                                         ~29     !8
         36      > SWITCH_STRING                                            ~29, [ 'string':->48, 'array':->67, 'boolean':->76, 'integer':->84, 'double':->84, ], ->88
   33    37    >   CASE                                                     ~29, 'string'
         38      > JMPNZ                                                    ~30, ->48
   39    39    >   CASE                                                     ~29, 'array'
         40      > JMPNZ                                                    ~30, ->67
   42    41    >   CASE                                                     ~29, 'boolean'
         42      > JMPNZ                                                    ~30, ->76
   48    43    >   CASE                                                     ~29, 'integer'
         44      > JMPNZ                                                    ~30, ->84
   49    45    >   CASE                                                     ~29, 'double'
         46      > JMPNZ                                                    ~30, ->84
         47    > > JMP                                                      ->88
   34    48    >   INIT_FCALL                                               'strpbrk'
         49        SEND_VAR                                                 !8
         50        SEND_VAL                                                 '%27%22%0A%0D%3C%5C%80'
         51        DO_ICALL                                         $31     
         52        TYPE_CHECK                                  1018          $31
         53      > JMPZ                                                     ~32, ->62
   35    54    >   INIT_FCALL                                               'jsescape'
         55        SEND_VAR                                                 !8
         56        DO_FCALL                                      0  $34     
         57        CONCAT                                           ~35     '%27', $34
         58        CONCAT                                           ~36     ~35, '%27'
         59        ASSIGN_DIM                                               !0, !9
         60        OP_DATA                                                  ~36
         61      > JMP                                                      ->66
   37    62    >   CONCAT                                           ~38     '%27', !8
         63        CONCAT                                           ~39     ~38, '%27'
         64        ASSIGN_DIM                                               !0, !9
         65        OP_DATA                                                  ~39
   38    66    > > JMP                                                      ->107
   40    67    >   INIT_FCALL_BY_NAME                                       'PhpToJSObject'
         68        SEND_VAR_EX                                              !8
         69        SEND_VAR_EX                                              !1
         70        SEND_VAR_EX                                              !2
         71        SEND_VAR_EX                                              !3
         72        DO_FCALL                                      0  $41     
         73        ASSIGN_DIM                                               !0, !9
         74        OP_DATA                                                  $41
   41    75      > JMP                                                      ->107
   43    76    >   TYPE_CHECK                                    8          !8
         77      > JMPZ                                                     ~42, ->81
   44    78    >   ASSIGN_DIM                                               !0, !9
         79        OP_DATA                                                  'true'
         80      > JMP                                                      ->83
   46    81    >   ASSIGN_DIM                                               !0, !9
         82        OP_DATA                                                  'false'
   47    83    > > JMP                                                      ->107
   50    84    > > JMPZ                                                     !3, ->88
   52    85    >   ASSIGN_DIM                                               !0, !9
         86        OP_DATA                                                  !8
   53    87      > JMP                                                      ->107
   56    88    >   INIT_FCALL                                               'strpbrk'
         89        SEND_VAR                                                 !8
         90        SEND_VAL                                                 '%27%22%0A%0D%3C%5C%80'
         91        DO_ICALL                                         $46     
         92        TYPE_CHECK                                  1018          $46
         93      > JMPZ                                                     ~47, ->102
   57    94    >   INIT_FCALL                                               'jsescape'
         95        SEND_VAR                                                 !8
         96        DO_FCALL                                      0  $49     
         97        CONCAT                                           ~50     '%27', $49
         98        CONCAT                                           ~51     ~50, '%27'
         99        ASSIGN_DIM                                               !0, !9
        100        OP_DATA                                                  ~51
        101      > JMP                                                      ->106
   59   102    >   CONCAT                                           ~53     '%27', !8
        103        CONCAT                                           ~54     ~53, '%27'
        104        ASSIGN_DIM                                               !0, !9
        105        OP_DATA                                                  ~54
   60   106    > > JMP                                                      ->107
        107    >   FREE                                                     ~29
   29   108      > JMP                                                      ->33
        109    >   FE_FREE                                                  $26
   63   110        INIT_FCALL                                               'implode'
        111        SEND_VAL                                                 '%2C'
        112        SEND_VAR                                                 !0
        113        DO_ICALL                                         $55     
        114        CONCAT                                           ~56     '%5B', $55
        115        CONCAT                                           ~57     ~56, '%5D'
        116        FREE                                                     ~16
        117      > RETURN                                                   ~57
   66   118    > > JMPZ                                                     !1, ->121
        119    >   QM_ASSIGN                                        ~58     '%0A'
        120      > JMP                                                      ->122
        121    >   QM_ASSIGN                                        ~58     ''
        122    >   CONCAT                                           ~59     '%2C', ~58
        123        ASSIGN                                                   !10, ~59
   67   124      > JMPZ                                                     !1, ->127
        125    >   QM_ASSIGN                                        ~61     '%0A'
        126      > JMP                                                      ->128
        127    >   QM_ASSIGN                                        ~61     ''
        128    >   CONCAT                                           ~62     ~61, '%7B'
        129        ASSIGN                                                   !11, ~62
   68   130        ASSIGN                                                   !12, <true>
   69   131      > FE_RESET_R                                       $65     !0, ->235
        132    > > FE_FETCH_R                                       ~66     $65, !8, ->235
        133    >   ASSIGN                                                   !9, ~66
   71   134      > JMPZ_EX                                          ~68     !2, ->142
        135    >   INIT_FCALL                                               'substr'
        136        SEND_VAR                                                 !9
        137        SEND_VAL                                                 0
        138        SEND_VAL                                                 1
        139        DO_ICALL                                         $69     
        140        IS_EQUAL                                         ~70     $69, '%7E'
        141        BOOL                                             ~68     ~70
        142    > > JMPZ                                                     ~68, ->144
   72   143    > > JMP                                                      ->132
   74   144    > > JMPZ                                                     !12, ->147
   75   145    >   ASSIGN                                                   !12, <false>
        146      > JMP                                                      ->148
   77   147    >   ASSIGN_OP                                     8          !11, !10
   79   148    >   INIT_FCALL                                               'strpbrk'
        149        SEND_VAR                                                 !9
        150        SEND_VAL                                                 '%27%22%0A%0D%3C%5C%80'
        151        DO_ICALL                                         $73     
        152        TYPE_CHECK                                  1018          $73
        153      > JMPZ                                                     ~74, ->166
   80   154    >   INIT_FCALL                                               'str_replace'
        155        SEND_VAR                                                 !4
        156        SEND_VAL                                                 ''
        157        INIT_FCALL                                               'jsescape'
        158        SEND_VAR                                                 !9
        159        DO_FCALL                                      0  $75     
        160        SEND_VAR                                                 $75
        161        DO_ICALL                                         $76     
        162        CONCAT                                           ~77     '%27', $76
        163        CONCAT                                           ~78     ~77, '%27%3A'
        164        ASSIGN_OP                                     8          !11, ~78
        165      > JMP                                                      ->169
   82   166    >   CONCAT                                           ~80     '%27', !9
        167        CONCAT                                           ~81     ~80, '%27%3A'
        168        ASSIGN_OP                                     8          !11, ~81
   84   169    >   GET_TYPE                                         ~83     !8
        170      > SWITCH_STRING                                            ~83, [ 'string':->182, 'array':->199, 'boolean':->207, 'integer':->213, 'double':->213, ], ->216
   86   171    >   CASE                                                     ~83, 'string'
        172      > JMPNZ                                                    ~84, ->182
   92   173    >   CASE                                                     ~83, 'array'
        174      > JMPNZ                                                    ~84, ->199
   95   175    >   CASE                                                     ~83, 'boolean'
        176      > JMPNZ                                                    ~84, ->207
  101   177    >   CASE                                                     ~83, 'integer'
        178      > JMPNZ                                                    ~84, ->213
  102   179    >   CASE                                                     ~83, 'double'
        180      > JMPNZ                                                    ~84, ->213
        181    > > JMP                                                      ->216
   87   182    >   INIT_FCALL                                               'strpbrk'
        183        SEND_VAR                                                 !8
        184        SEND_VAL                                                 '%27%22%0A%0D%3C%5C%80'
        185        DO_ICALL                                         $85     
        186        TYPE_CHECK                                  1018          $85
        187      > JMPZ                                                     ~86, ->195
   88   188    >   INIT_FCALL                                               'jsescape'
        189        SEND_VAR                                                 !8
        190        DO_FCALL                                      0  $87     
        191        CONCAT                                           ~88     '%27', $87
        192        CONCAT                                           ~89     ~88, '%27'
        193        ASSIGN_OP                                     8          !11, ~89
        194      > JMP                                                      ->198
   90   195    >   CONCAT                                           ~91     '%27', !8
        196        CONCAT                                           ~92     ~91, '%27'
        197        ASSIGN_OP                                     8          !11, ~92
   91   198    > > JMP                                                      ->233
   93   199    >   INIT_FCALL_BY_NAME                                       'PhpToJSObject'
        200        SEND_VAR_EX                                              !8
        201        SEND_VAR_EX                                              !1
        202        SEND_VAR_EX                                              !2
        203        SEND_VAR_EX                                              !3
        204        DO_FCALL                                      0  $94     
        205        ASSIGN_OP                                     8          !11, $94
   94   206      > JMP                                                      ->233
   96   207    >   TYPE_CHECK                                    8          !8
        208      > JMPZ                                                     ~96, ->211
   97   209    >   ASSIGN_OP                                     8          !11, 'true'
        210      > JMP                                                      ->212
   99   211    >   ASSIGN_OP                                     8          !11, 'false'
  100   212    > > JMP                                                      ->233
  103   213    > > JMPZ                                                     !3, ->216
  105   214    >   ASSIGN_OP                                     8          !11, !8
  106   215      > JMP                                                      ->233
  109   216    >   INIT_FCALL                                               'strpbrk'
        217        SEND_VAR                                                 !8
        218        SEND_VAL                                                 '%27%22%0A%0D%3C%5C%80'
        219        DO_ICALL                                         $100    
        220        TYPE_CHECK                                  1018          $100
        221      > JMPZ                                                     ~101, ->229
  110   222    >   INIT_FCALL                                               'jsescape'
        223        SEND_VAR                                                 !8
        224        DO_FCALL                                      0  $102    
        225        CONCAT                                           ~103    '%27', $102
        226        CONCAT                                           ~104    ~103, '%27'
        227        ASSIGN_OP                                     8          !11, ~104
        228      > JMP                                                      ->232
  112   229    >   CONCAT                                           ~106    '%27', !8
        230        CONCAT                                           ~107    ~106, '%27'
        231        ASSIGN_OP                         

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
402.68 ms | 1431 KiB | 31 Q