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

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
164.43 ms | 1431 KiB | 30 Q