3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * @param integer $type Constant like INPUT_XXX * @param array $default Default structure of the specified super global var. * Following bitmasks are available: * + FILTER_STRUCT_FORCE_ARRAY - Force 1D array. * + FILTER_STRUCT_TRIM - Set trimmed string. * + FILTER_STRUCT_FULL_TRIM - Trim including full-width and no-break space. * @return string The value of the filtered super global var. * @see http://qiita.com/items/c39b9ee695a5c2e74627 */ define('FILTER_STRUCT_FORCE_ARRAY', 1); define('FILTER_STRUCT_TRIM', 2); define('FILTER_STRUCT_FULL_TRIM', 4); function filter_struct_utf8($type, array $default) { static $is_recursive_static = false; $is_recursive = $is_recursive_static; if (!$is_recursive) { $types = array( INPUT_GET => $_GET, INPUT_POST => $_POST, INPUT_COOKIE => $_COOKIE, INPUT_REQUEST => $_REQUEST, INPUT_ENV => $_ENV, INPUT_SERVER => $_SERVER, ); $type = (int)$type; if (!isset($types[$type])) { throw new LogicException('unknown super global var type'); } $var = $types[$type]; $is_recursive_static = true; } else { $var = $type; } $trim_chars = "\0\x20\x09\x0a\x0d\x0b"; $full_trim_chars = "{$trim_chars}\xc2\xa0\xe3\x80\x80"; $trim_pattern = "/\A[{$trim_chars}]++|[{$trim_chars}]++\z/u"; $full_trim_pattern = "/\A[{$full_trim_chars}]++|[{$full_trim_chars}]++\z/u"; $ret = array(); foreach ($default as $key => $value) { if (is_int($value) && !($value & ( FILTER_STRUCT_FORCE_ARRAY | FILTER_STRUCT_FULL_TRIM | FILTER_STRUCT_TRIM ))) { if (!$is_recursive) { $is_recursive_static = false; } throw new LogicException('unknown bitmask'); } if (is_int($value) && $value & FILTER_STRUCT_FORCE_ARRAY) { $tmp = array(); if (isset($var[$key])) { foreach ((array)$var[$key] as $k => $v) { if (!preg_match('//u', $k)) { continue; } $value &= FILTER_STRUCT_FULL_TRIM | FILTER_STRUCT_TRIM; $tmp += array($k => $value ? $value : ''); } } $value = $tmp; } if (isset($var[$key]) && is_array($value)) { $ret[$key] = filter_struct_utf8($var[$key], $value); } elseif (!isset($var[$key]) || is_array($var[$key])) { $ret[$key] = is_int($value) ? '' : $value; } else { if (!isset($var[$key]) || is_array($var[$key])) { $var[$key] = null; } elseif (is_int($value) && $value & FILTER_STRUCT_FULL_TRIM) { $var[$key] = preg_replace($full_trim_pattern, '', $var[$key]); } elseif (is_int($value) && $value & FILTER_STRUCT_TRIM) { $var[$key] = preg_replace($trim_pattern, '', $var[$key]); } else { $var[$key] = preg_replace('//u', '', $var[$key]); } if ($var[$key] === null) { $var[$key] = is_int($value) ? '' : $value; } $ret[$key] = $var[$key]; } } if (!$is_recursive) { $is_recursive_static = false; } return $ret; } // テスト用として代入($_POST['email']は未定義) $_POST['name'] = array( // 異常な値(本来は文字列で来るはず) 'hahaha' => 'I am an array', ); $_POST['age'] = '20'; // 正常な値 $_POST['gender'] = 'male'; // 正常な値 $_POST['options'] = array( 'b' => 'yes', // 正常な値 'c' => array('hahaha' => 'This is an invalid option'), // 異常な値 ); // $_POSTの要素を期待する形になるようにシンボルテーブルにインポートする extract(filter_struct_utf8(INPUT_POST, array( 'name' => '', // 異常なときは強制的に空文字列にする 'age' => '', // 異常なときは強制的に空文字列にする 'email' => '', // 異常なときは強制的に空文字列にする 'gender' => '', // 異常なときは強制的に空文字列にする 'options' => FILTER_STRUCT_FORCE_ARRAY, // 強制的に一次元配列にする ))); // 値を見てみる var_dump($name, $age, $email, $gender, $options);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/Aqceg
function name:  (null)
number of ops:  45
compiled vars:  !0 = $name, !1 = $age, !2 = $email, !3 = $gender, !4 = $options
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   13     0  E >   INIT_FCALL                                               'define'
          1        SEND_VAL                                                 'FILTER_STRUCT_FORCE_ARRAY'
          2        SEND_VAL                                                 1
          3        DO_ICALL                                                 
   14     4        INIT_FCALL                                               'define'
          5        SEND_VAL                                                 'FILTER_STRUCT_TRIM'
          6        SEND_VAL                                                 2
          7        DO_ICALL                                                 
   15     8        INIT_FCALL                                               'define'
          9        SEND_VAL                                                 'FILTER_STRUCT_FULL_TRIM'
         10        SEND_VAL                                                 4
         11        DO_ICALL                                                 
   94    12        FETCH_W                      global              $8      '_POST'
         13        ASSIGN_DIM                                               $8, 'name'
   95    14        OP_DATA                                                  <array>
   97    15        FETCH_W                      global              $10     '_POST'
         16        ASSIGN_DIM                                               $10, 'age'
         17        OP_DATA                                                  '20'
   98    18        FETCH_W                      global              $12     '_POST'
         19        ASSIGN_DIM                                               $12, 'gender'
         20        OP_DATA                                                  'male'
   99    21        FETCH_W                      global              $14     '_POST'
         22        ASSIGN_DIM                                               $14, 'options'
  100    23        OP_DATA                                                  <array>
  105    24        INIT_FCALL                                               'extract'
         25        INIT_FCALL                                               'filter_struct_utf8'
         26        SEND_VAL                                                 0
  106    27        INIT_ARRAY                                       ~16     '', 'name'
  107    28        ADD_ARRAY_ELEMENT                                ~16     '', 'age'
  108    29        ADD_ARRAY_ELEMENT                                ~16     '', 'email'
  109    30        ADD_ARRAY_ELEMENT                                ~16     '', 'gender'
  110    31        FETCH_CONSTANT                                   ~17     'FILTER_STRUCT_FORCE_ARRAY'
         32        ADD_ARRAY_ELEMENT                                ~16     ~17, 'options'
         33        SEND_VAL                                                 ~16
         34        DO_FCALL                                      0  $18     
         35        SEND_VAL                                                 $18
         36        DO_ICALL                                                 
  114    37        INIT_FCALL                                               'var_dump'
         38        SEND_VAR                                                 !0
         39        SEND_VAR                                                 !1
         40        SEND_VAR                                                 !2
         41        SEND_VAR                                                 !3
         42        SEND_VAR                                                 !4
         43        DO_ICALL                                                 
         44      > RETURN                                                   1

Function filter_struct_utf8:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 33
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 29
Branch analysis from position: 25
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 29
1 jumps found. (Code = 42) Position 1 = 34
Branch analysis from position: 34
2 jumps found. (Code = 77) Position 1 = 52, Position 2 = 197
Branch analysis from position: 52
2 jumps found. (Code = 78) Position 1 = 53, Position 2 = 197
Branch analysis from position: 53
2 jumps found. (Code = 46) Position 1 = 56, Position 2 = 64
Branch analysis from position: 56
2 jumps found. (Code = 43) Position 1 = 65, Position 2 = 72
Branch analysis from position: 65
2 jumps found. (Code = 43) Position 1 = 67, Position 2 = 68
Branch analysis from position: 67
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 68
Branch analysis from position: 72
2 jumps found. (Code = 46) Position 1 = 74, Position 2 = 77
Branch analysis from position: 74
2 jumps found. (Code = 43) Position 1 = 78, Position 2 = 106
Branch analysis from position: 78
2 jumps found. (Code = 43) Position 1 = 81, Position 2 = 105
Branch analysis from position: 81
2 jumps found. (Code = 77) Position 1 = 84, Position 2 = 104
Branch analysis from position: 84
2 jumps found. (Code = 78) Position 1 = 85, Position 2 = 104
Branch analysis from position: 85
2 jumps found. (Code = 43) Position 1 = 92, Position 2 = 93
Branch analysis from position: 92
1 jumps found. (Code = 42) Position 1 = 84
Branch analysis from position: 84
Branch analysis from position: 93
2 jumps found. (Code = 43) Position 1 = 98, Position 2 = 100
Branch analysis from position: 98
1 jumps found. (Code = 42) Position 1 = 101
Branch analysis from position: 101
1 jumps found. (Code = 42) Position 1 = 84
Branch analysis from position: 84
Branch analysis from position: 100
1 jumps found. (Code = 42) Position 1 = 84
Branch analysis from position: 84
Branch analysis from position: 104
2 jumps found. (Code = 46) Position 1 = 108, Position 2 = 110
Branch analysis from position: 108
2 jumps found. (Code = 43) Position 1 = 111, Position 2 = 120
Branch analysis from position: 111
1 jumps found. (Code = 42) Position 1 = 196
Branch analysis from position: 196
1 jumps found. (Code = 42) Position 1 = 52
Branch analysis from position: 52
Branch analysis from position: 120
2 jumps found. (Code = 47) Position 1 = 123, Position 2 = 126
Branch analysis from position: 123
2 jumps found. (Code = 43) Position 1 = 127, Position 2 = 135
Branch analysis from position: 127
2 jumps found. (Code = 43) Position 1 = 129, Position 2 = 131
Branch analysis from position: 129
1 jumps found. (Code = 42) Position 1 = 132
Branch analysis from position: 132
1 jumps found. (Code = 42) Position 1 = 196
Branch analysis from position: 196
Branch analysis from position: 131
1 jumps found. (Code = 42) Position 1 = 196
Branch analysis from position: 196
Branch analysis from position: 135
2 jumps found. (Code = 47) Position 1 = 138, Position 2 = 141
Branch analysis from position: 138
2 jumps found. (Code = 43) Position 1 = 142, Position 2 = 145
Branch analysis from position: 142
1 jumps found. (Code = 42) Position 1 = 183
Branch analysis from position: 183
2 jumps found. (Code = 43) Position 1 = 186, Position 2 = 193
Branch analysis from position: 186
2 jumps found. (Code = 43) Position 1 = 188, Position 2 = 190
Branch analysis from position: 188
1 jumps found. (Code = 42) Position 1 = 191
Branch analysis from position: 191
1 jumps found. (Code = 42) Position 1 = 52
Branch analysis from position: 52
Branch analysis from position: 190
1 jumps found. (Code = 42) Position 1 = 52
Branch analysis from position: 52
Branch analysis from position: 193
Branch analysis from position: 145
2 jumps found. (Code = 46) Position 1 = 147, Position 2 = 150
Branch analysis from position: 147
2 jumps found. (Code = 43) Position 1 = 151, Position 2 = 160
Branch analysis from position: 151
1 jumps found. (Code = 42) Position 1 = 183
Branch analysis from position: 183
Branch analysis from position: 160
2 jumps found. (Code = 46) Position 1 = 162, Position 2 = 165
Branch analysis from position: 162
2 jumps found. (Code = 43) Position 1 = 166, Position 2 = 175
Branch analysis from position: 166
1 jumps found. (Code = 42) Position 1 = 183
Branch analysis from position: 183
Branch analysis from position: 175
2 jumps found. (Code = 43) Position 1 = 186, Position 2 = 193
Branch analysis from position: 186
Branch analysis from position: 193
Branch analysis from position: 165
Branch analysis from position: 150
Branch analysis from position: 141
Branch analysis from position: 126
Branch analysis from position: 110
Branch analysis from position: 104
Branch analysis from position: 105
Branch analysis from position: 106
Branch analysis from position: 77
Branch analysis from position: 64
Branch analysis from position: 197
2 jumps found. (Code = 43) Position 1 = 200, Position 2 = 201
Branch analysis from position: 200
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 201
Branch analysis from position: 197
Branch analysis from position: 33
2 jumps found. (Code = 77) Position 1 = 52, Position 2 = 197
Branch analysis from position: 52
Branch analysis from position: 197
filename:       /in/Aqceg
function name:  filter_struct_utf8
number of ops:  203
compiled vars:  !0 = $type, !1 = $default, !2 = $is_recursive_static, !3 = $is_recursive, !4 = $types, !5 = $var, !6 = $trim_chars, !7 = $full_trim_chars, !8 = $trim_pattern, !9 = $full_trim_pattern, !10 = $ret, !11 = $value, !12 = $key, !13 = $tmp, !14 = $v, !15 = $k
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   16     0  E >   RECV                                             !0      
          1        RECV                                             !1      
   17     2        BIND_STATIC                                              !2
   18     3        ASSIGN                                                   !3, !2
   19     4        BOOL_NOT                                         ~17     !3
          5      > JMPZ                                                     ~17, ->33
   21     6    >   FETCH_R                      global              ~18     '_GET'
          7        INIT_ARRAY                                       ~19     ~18, 1
   22     8        FETCH_R                      global              ~20     '_POST'
          9        ADD_ARRAY_ELEMENT                                ~19     ~20, 0
   23    10        FETCH_R                      global              ~21     '_COOKIE'
         11        ADD_ARRAY_ELEMENT                                ~19     ~21, 2
   24    12        FETCH_CONSTANT                                   ~22     'INPUT_REQUEST'
         13        FETCH_R                      global              ~23     '_REQUEST'
         14        ADD_ARRAY_ELEMENT                                ~19     ~23, ~22
   25    15        FETCH_R                      global              ~24     '_ENV'
         16        ADD_ARRAY_ELEMENT                                ~19     ~24, 4
   26    17        FETCH_R                      global              ~25     '_SERVER'
         18        ADD_ARRAY_ELEMENT                                ~19     ~25, 5
   20    19        ASSIGN                                                   !4, ~19
   28    20        CAST                                          4  ~27     !0
         21        ASSIGN                                                   !0, ~27
   29    22        ISSET_ISEMPTY_DIM_OBJ                         0  ~29     !4, !0
         23        BOOL_NOT                                         ~30     ~29
         24      > JMPZ                                                     ~30, ->29
   30    25    >   NEW                                              $31     'LogicException'
         26        SEND_VAL_EX                                              'unknown+super+global+var+type'
         27        DO_FCALL                                      0          
         28      > THROW                                         0          $31
   32    29    >   FETCH_DIM_R                                      ~33     !4, !0
         30        ASSIGN                                                   !5, ~33
   33    31        ASSIGN                                                   !2, <true>
         32      > JMP                                                      ->34
   35    33    >   ASSIGN                                                   !5, !0
   37    34    >   ASSIGN                                                   !6, '%00+%09%0A%0D%0B'
   38    35        NOP                                                      
         36        FAST_CONCAT                                      ~38     !6, '%C2%A0%E3%80%80'
         37        ASSIGN                                                   !7, ~38
   39    38        ROPE_INIT                                     5  ~41     '%2F%5CA%5B'
         39        ROPE_ADD                                      1  ~41     ~41, !6
         40        ROPE_ADD                                      2  ~41     ~41, '%5D%2B%2B%7C%5B'
         41        ROPE_ADD                                      3  ~41     ~41, !6
         42        ROPE_END                                      4  ~40     ~41, '%5D%2B%2B%5Cz%2Fu'
         43        ASSIGN                                                   !8, ~40
   40    44        ROPE_INIT                                     5  ~46     '%2F%5CA%5B'
         45        ROPE_ADD                                      1  ~46     ~46, !7
         46        ROPE_ADD                                      2  ~46     ~46, '%5D%2B%2B%7C%5B'
         47        ROPE_ADD                                      3  ~46     ~46, !7
         48        ROPE_END                                      4  ~45     ~46, '%5D%2B%2B%5Cz%2Fu'
         49        ASSIGN                                                   !9, ~45
   41    50        ASSIGN                                                   !10, <array>
   42    51      > FE_RESET_R                                       $51     !1, ->197
         52    > > FE_FETCH_R                                       ~52     $51, !11, ->197
         53    >   ASSIGN                                                   !12, ~52
   43    54        TYPE_CHECK                                   16  ~54     !11
         55      > JMPZ_EX                                          ~54     ~54, ->64
   44    56    >   FETCH_CONSTANT                                   ~55     'FILTER_STRUCT_FORCE_ARRAY'
   45    57        FETCH_CONSTANT                                   ~56     'FILTER_STRUCT_FULL_TRIM'
         58        BW_OR                                            ~57     ~55, ~56
   46    59        FETCH_CONSTANT                                   ~58     'FILTER_STRUCT_TRIM'
         60        BW_OR                                            ~59     ~57, ~58
         61        BW_AND                                           ~60     !11, ~59
         62        BOOL_NOT                                         ~61     ~60
         63        BOOL                                             ~54     ~61
         64    > > JMPZ                                                     ~54, ->72
   48    65    >   BOOL_NOT                                         ~62     !3
         66      > JMPZ                                                     ~62, ->68
   49    67    >   ASSIGN                                                   !2, <false>
   51    68    >   NEW                                              $64     'LogicException'
         69        SEND_VAL_EX                                              'unknown+bitmask'
         70        DO_FCALL                                      0          
         71      > THROW                                         0          $64
   53    72    >   TYPE_CHECK                                   16  ~66     !11
         73      > JMPZ_EX                                          ~66     ~66, ->77
         74    >   FETCH_CONSTANT                                   ~67     'FILTER_STRUCT_FORCE_ARRAY'
         75        BW_AND                                           ~68     !11, ~67
         76        BOOL                                             ~66     ~68
         77    > > JMPZ                                                     ~66, ->106
   54    78    >   ASSIGN                                                   !13, <array>
   55    79        ISSET_ISEMPTY_DIM_OBJ                         0          !5, !12
         80      > JMPZ                                                     ~70, ->105
   56    81    >   FETCH_DIM_R                                      ~71     !5, !12
         82        CAST                                          7  ~72     ~71
         83      > FE_RESET_R                                       $73     ~72, ->104
         84    > > FE_FETCH_R                                       ~74     $73, !14, ->104
         85    >   ASSIGN                                                   !15, ~74
   57    86        INIT_FCALL                                               'preg_match'
         87        SEND_VAL                                                 '%2F%2Fu'
         88        SEND_VAR                                                 !15
         89        DO_ICALL                                         $76     
         90        BOOL_NOT                                         ~77     $76
         91      > JMPZ                                                     ~77, ->93
   58    92    > > JMP                                                      ->84
   60    93    >   FETCH_CONSTANT                                   ~78     'FILTER_STRUCT_FULL_TRIM'
         94        FETCH_CONSTANT                                   ~79     'FILTER_STRUCT_TRIM'
         95        BW_OR                                            ~80     ~78, ~79
         96        ASSIGN_OP                                    10          !11, ~80
   61    97      > JMPZ                                                     !11, ->100
         98    >   QM_ASSIGN                                        ~82     !11
         99      > JMP                                                      ->101
        100    >   QM_ASSIGN                                        ~82     ''
        101    >   INIT_ARRAY                                       ~83     ~82, !15
        102        ASSIGN_OP                                     1          !13, ~83
   56   103      > JMP                                                      ->84
        104    >   FE_FREE                                                  $73
   64   105    >   ASSIGN                                                   !11, !13
   66   106    >   ISSET_ISEMPTY_DIM_OBJ                         0  ~86     !5, !12
        107      > JMPZ_EX                                          ~86     ~86, ->110
        108    >   TYPE_CHECK                                  128  ~87     !11
        109        BOOL                                             ~86     ~87
        110    > > JMPZ                                                     ~86, ->120
   67   111    >   INIT_FCALL_BY_NAME                                       'filter_struct_utf8'
        112        CHECK_FUNC_ARG                                           
        113        FETCH_DIM_FUNC_ARG                               $89     !5, !12
        114        SEND_FUNC_ARG                                            $89
        115        SEND_VAR_EX                                              !11
        116        DO_FCALL                                      0  $90     
        117        ASSIGN_DIM                                               !10, !12
        118        OP_DATA                                                  $90
        119      > JMP                                                      ->196
   68   120    >   ISSET_ISEMPTY_DIM_OBJ                         0  ~91     !5, !12
        121        BOOL_NOT                                         ~92     ~91
        122      > JMPNZ_EX                                         ~92     ~92, ->126
        123    >   FETCH_DIM_R                                      ~93     !5, !12
        124        TYPE_CHECK                                  128  ~94     ~93
        125        BOOL                                             ~92     ~94
        126    > > JMPZ                                                     ~92, ->135
   69   127    >   TYPE_CHECK                                   16          !11
        128      > JMPZ                                                     ~96, ->131
        129    >   QM_ASSIGN                                        ~97     ''
        130      > JMP                                                      ->132
        131    >   QM_ASSIGN                                        ~97     !11
        132    >   ASSIGN_DIM                                               !10, !12
        133        OP_DATA                                                  ~97
        134      > JMP                                                      ->196
   71   135    >   ISSET_ISEMPTY_DIM_OBJ                         0  ~98     !5, !12
        136        BOOL_NOT                                         ~99     ~98
        137      > JMPNZ_EX                                         ~99     ~99, ->141
        138    >   FETCH_DIM_R                                      ~100    !5, !12
        139        TYPE_CHECK                                  128  ~101    ~100
        140        BOOL                                             ~99     ~101
        141    > > JMPZ                                                     ~99, ->145
   72   142    >   ASSIGN_DIM                                               !5, !12
        143        OP_DATA                                                  null
        144      > JMP                                                      ->183
   73   145    >   TYPE_CHECK                                   16  ~103    !11
        146      > JMPZ_EX                                          ~103    ~103, ->150
        147    >   FETCH_CONSTANT                                   ~104    'FILTER_STRUCT_FULL_TRIM'
        148        BW_AND                                           ~105    !11, ~104
        149        BOOL                                             ~103    ~105
        150    > > JMPZ                                                     ~103, ->160
   74   151    >   INIT_FCALL                                               'preg_replace'
        152        SEND_VAR                                                 !9
        153        SEND_VAL                                                 ''
        154        FETCH_DIM_R                                      ~107    !5, !12
        155        SEND_VAL                                                 ~107
        156        DO_ICALL                                         $108    
        157        ASSIGN_DIM                                               !5, !12
        158        OP_DATA                                                  $108
        159      > JMP                                                      ->183
   75   160    >   TYPE_CHECK                                   16  ~109    !11
        161      > JMPZ_EX                                          ~109    ~109, ->165
        162    >   FETCH_CONSTANT                                   ~110    'FILTER_STRUCT_TRIM'
        163        BW_AND                                           ~111    !11, ~110
        164        BOOL                                             ~109    ~111
        165    > > JMPZ                                                     ~109, ->175
   76   166    >   INIT_FCALL                                               'preg_replace'
        167        SEND_VAR                                                 !8
        168        SEND_VAL                                                 ''
        169        FETCH_DIM_R                                      ~113    !5, !12
        170        SEND_VAL                                                 ~113
        171        DO_ICALL                                         $114    
        172        ASSIGN_DIM                                               !5, !12
        173        OP_DATA                                                  $114
        174      > JMP                                                      ->183
   78   175    >   INIT_FCALL                                               'preg_replace'
        176        SEND_VAL                                                 '%2F%2Fu'
        177        SEND_VAL                                                 ''
        178        FETCH_DIM_R                                      ~116    !5, !12
        179        SEND_VAL                                                 ~116
        180        DO_ICALL                                         $117    
        181        ASSIGN_DIM                                               !5, !12
        182        OP_DATA                                                  $117
   80   183    >   FETCH_DIM_R                                      ~118    !5, !12
        184        TYPE_CHECK                                    2          ~118
        185      > JMPZ                                                     ~119, ->193
   81   186    >   TYPE_CHECK                                   16          !11
        187      > JMPZ                                                     ~121, ->190
        188    >   QM_ASSIGN                                        ~122    ''
        189      > JMP                                                      ->191
        190    >   QM_ASSIGN                                        ~122    !11
        191    >   ASSIGN_DIM                                               !5, !12
        192        OP_DATA                                                  ~122
   83   193    >   FETCH_DIM_R                                      ~124    !5, !12
        194        ASSIGN_DIM                                               !10, !12
        195        OP_DATA                                                  ~124
   42   196    > > JMP                                                      ->52
        197    >   FE_FREE                                                  $51
   86   198        BOOL_NOT                                         ~125    !3
        199      > JMPZ                                                     ~125, ->201
   87   200    >   ASSIGN                                                   !2, <false>
   89   201    > > RETURN                                                   !10
   90   202*     > RETURN                                                   null

End of function filter_struct_utf8

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
152.87 ms | 1414 KiB | 24 Q