3v4l.org

run code in 300+ PHP versions simultaneously
<?php /* * * * array // aka is_array() * strict_array //alias of array * bool // if string representation is "1" or "0" or "on" or "off" or "true" or "false" * strict_bool //aka is_boolean() * float //check if string representation can be losslessly converted to an float.. * strict_float // aka is_float() * int // check if string representation can be losslessly converted to an int * strict_int // aka is_int() * string // check if variables can be converted to a string.. * strict_string //aka is_string() * null //aka is_null() * strict_null //alias of null * numeric //aka is_numeric() * strict_numeric // alias of numeric... maybe ill change this later * object //aka is_object() * strict_object //alias of object * callable //aka is_callable() * strict_callable //alias of callable * resource //aka is_resource() * strict_resource //alias of resource * integer //alias of int * strict_integer // alias of strict_int * double //alis of float * strict_double //alias of strict_float * real //alias of float * strict_real //alias of strict_float * scalar //aka is_scalar() * strict_scalar //alias of scalar * long //alias of int * strict_long //alias of strict_int * * * */ function hhb_mustbe1() { //throw new Exception("not implemented yet!! name reserved & function under development..."); //TODO: optimize this function, we have tons of useless variables and aliases that //should never have been declared at all... $argc = func_num_args(); if (!($argc>=2 && 0===($argc%2))) { throw new BadFunctionCallException('$argc=' . $argc . ' , argc must be >=2 and mod2===0, anything else is an obvious error!'); }; $validators = array(); $validators['array']=$valiate_array = function($invar) { return is_array($invar); }; $validators['strict_array']=$validate_strict_array = $validate_array; //alias. $validators['bool']=$validate_bool = function($invar) {$res = filter_var($invar, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE); return $res !== null; }; $validators['strict_bool']=$validate_strict_bool = function($invar) { return is_bool($invar); }; $validators['float']=$validate_float = function($invar) {$res = filter_var($invar, FILTER_VALIDATE_FLOAT); return $res !== false; }; $validators['strict_float']=$validate_strict_float = function($invar) { return is_float($invar); }; $validators['int']=$validate_int = function($invar) {$res = filter_var($invar, FILTER_VALIDATE_INT); return $res !== false; }; $validators['strict_int']=$validate_strict_int = function($invar) { return is_infinite($invar); }; $validators['string']=$validate_string = function($invar) { //PS: there is very few things in PHP that cannot be threated like a string in php.. object lacking __toString is 1 try {$invar = (string)$invar; return true; } catch(Exception $ex) { return false; }; }; $validators['strict_string']=$validate_strict_string = function($invar) { return is_string($invar); }; $validators['null']=$validate_null = function($invar) { return is_null($invar); }; $validators['strict_null']=$validate_strict_null = $validate_null; //alias $validators['numeric']=$validate_numeric = function($invar) { return is_numeric($var); }; $validators['strict_numeric']=$validate_strict_numeric = $validate_numeric; //alias $validators['object']=$validate_object = function($invar) { return is_object($invar); }; $validators['strict_object']=$validate_strict_object = $validate_object; //alias $validators['callable']=$validate_callable = function($invar) { return is_callable($invar); }; $validators['strict_callable']=$validate_strict_callable = $validate_callable; //alias $validators['resource']=$validate_resource = function($invar) { return is_resource($invar); }; $validators['strict_resource']=$validate_strict_resource = $validate_resource; //alias $validators['integer']=$validate_integer = $validate_int; //alias $validators['strict_integer']=$validate_strict_integer = $validate_strict_int; //alias $validators['double']=$validate_double = $validate_float; //alias $validators['strict_double']=$validate_strict_double = $validate_strict_float; //alias $validators['real']=$validate_real = $validate_float; //alias $validators['strict_real']=$validate_strict_real = $validate_strict_float; //alias $validators['scalar']=$validate_scalar = function($invar) { return is_scalar($invar); }; $validators['strict_scalar']=$validate_strict_scalar = $validate_scalar; //alias $validators['long']=$validate_long = $validate_int; //alias $validators['strict_long']=$validate_strict_long = $validate_strict_int; //alias $operators=array('and'=>1,'or'=>1,'not'=>'unimplemented!'); $parse_validators=function($invar) use($validators,$operators){ if(!is_string($invar) && !is_array($invar)){ throw new BadFunctionCallException('you\'re using hhb_musbe1 wrong! every list of validators must be string or array!'); }; if(is_array($invar)){ throw new Exception("sorry, array of validators is not supported/implemented YET.."); // }; $rawlists=array($invar); $list=array(); $tmparr=array(); $next_must_be='validator';//ps: after first iteration, "must be" means "assuming there IS a next, next must be" foreach($rawlists as $rawlist){ $rawlist=preg_replace('/\s+/',' ',$rawlist); $rawlist=strtolower($rawlist); $tmparr=explode(" ",$rawlist); $previous_tmpval=null; foreach($tmparr as $tmpval){ if($next_must_be==='next_input'){//unreachable when used correctly! throw new BadFunctionCallException($previous_tmpval.' must be followed by a new value in the array! there can be nothing after it in the string! yet, i found '.$tmpval.' after it! syntax error..'); } else if($next_must_be==='validator'){ if(!array_key_exists($tmpval,$validators)){ throw BadFunctionCallException('"'.$rawvalidator.'" is not a recognized validator! recognized validator: "'.var_export(array_keys($validators),true).'""'); }; $list[]=array('validator',$tmpval); //NOTE: tricky strlen n shit? $next_must_be='operator'; $previous_tmpval=$tmpval; continue; } else if($next_must_be==='operator'){ if(!array_key_exists($tmpval,$operators)){ throw BadFunctionCallException('"'.$rawvalidator.'" is not a recognized operator! recognized operators: "'.var_export(array_keys($operators),true).'"'); } $list[]=array('operator',$tmpval); $next_must_be='validator'; $previous_tmpval=$tmpval; continue; }//else {/*ERROR! SHOULD BE UNREACHABLE!*/ throw new LogicException('error! unreachable code..reached; probably caused by invalid $next_must_be='.var_export($next_must_be,true).''); } } } }; }; function hhb_mustbe2(/*void*/) { throw new Exception("not implemented yet!! name reserved..."); class validator_class { public $invoke_counter = 0; function __destruct() { } }; return new validator_class(); };
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  (null)
number of ops:  1
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  188     0  E > > RETURN                                                   1

Function hhb_mustbe1:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 4, Position 2 = 7
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 15
Branch analysis from position: 9
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/lU5mk
function name:  hhb_mustbe1
number of ops:  127
compiled vars:  !0 = $argc, !1 = $validators, !2 = $valiate_array, !3 = $validate_strict_array, !4 = $validate_array, !5 = $validate_bool, !6 = $validate_strict_bool, !7 = $validate_float, !8 = $validate_strict_float, !9 = $validate_int, !10 = $validate_strict_int, !11 = $validate_string, !12 = $validate_strict_string, !13 = $validate_null, !14 = $validate_strict_null, !15 = $validate_numeric, !16 = $validate_strict_numeric, !17 = $validate_object, !18 = $validate_strict_object, !19 = $validate_callable, !20 = $validate_strict_callable, !21 = $validate_resource, !22 = $validate_strict_resource, !23 = $validate_integer, !24 = $validate_strict_integer, !25 = $validate_double, !26 = $validate_strict_double, !27 = $validate_real, !28 = $validate_strict_real, !29 = $validate_scalar, !30 = $validate_strict_scalar, !31 = $validate_long, !32 = $validate_strict_long, !33 = $operators, !34 = $parse_validators
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   41     0  E >   FUNC_NUM_ARGS                                    ~35     
          1        ASSIGN                                                   !0, ~35
   42     2        IS_SMALLER_OR_EQUAL                              ~37     2, !0
          3      > JMPZ_EX                                          ~37     ~37, ->7
          4    >   MOD                                              ~38     !0, 2
          5        IS_IDENTICAL                                     ~39     ~38, 0
          6        BOOL                                             ~37     ~39
          7    >   BOOL_NOT                                         ~40     ~37
          8      > JMPZ                                                     ~40, ->15
   43     9    >   NEW                                              $41     'BadFunctionCallException'
         10        CONCAT                                           ~42     '%24argc%3D', !0
         11        CONCAT                                           ~43     ~42, '+%2C+argc+must+be+%3E%3D2+and+mod2%3D%3D%3D0%2C+anything+else+is+an+obvious+error%21'
         12        SEND_VAL_EX                                              ~43
         13        DO_FCALL                                      0          
         14      > THROW                                         0          $41
   45    15    >   ASSIGN                                                   !1, <array>
   46    16        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A46%240'
         17        ASSIGN                                           ~48     !2, ~47
         18        ASSIGN_DIM                                               !1, 'array'
         19        OP_DATA                                                  ~48
   49    20        ASSIGN                                           ~50     !3, !4
         21        ASSIGN_DIM                                               !1, 'strict_array'
         22        OP_DATA                                                  ~50
   51    23        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A51%241'
         24        ASSIGN                                           ~53     !5, ~52
         25        ASSIGN_DIM                                               !1, 'bool'
         26        OP_DATA                                                  ~53
   54    27        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A54%242'
         28        ASSIGN                                           ~56     !6, ~55
         29        ASSIGN_DIM                                               !1, 'strict_bool'
         30        OP_DATA                                                  ~56
   57    31        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A57%243'
         32        ASSIGN                                           ~59     !7, ~58
         33        ASSIGN_DIM                                               !1, 'float'
         34        OP_DATA                                                  ~59
   60    35        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A60%244'
         36        ASSIGN                                           ~62     !8, ~61
         37        ASSIGN_DIM                                               !1, 'strict_float'
         38        OP_DATA                                                  ~62
   63    39        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A63%245'
         40        ASSIGN                                           ~65     !9, ~64
         41        ASSIGN_DIM                                               !1, 'int'
         42        OP_DATA                                                  ~65
   66    43        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A66%246'
         44        ASSIGN                                           ~68     !10, ~67
         45        ASSIGN_DIM                                               !1, 'strict_int'
         46        OP_DATA                                                  ~68
   69    47        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A69%247'
         48        ASSIGN                                           ~71     !11, ~70
         49        ASSIGN_DIM                                               !1, 'string'
         50        OP_DATA                                                  ~71
   77    51        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A77%248'
         52        ASSIGN                                           ~74     !12, ~73
         53        ASSIGN_DIM                                               !1, 'strict_string'
         54        OP_DATA                                                  ~74
   80    55        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A80%249'
         56        ASSIGN                                           ~77     !13, ~76
         57        ASSIGN_DIM                                               !1, 'null'
         58        OP_DATA                                                  ~77
   83    59        ASSIGN                                           ~79     !14, !13
         60        ASSIGN_DIM                                               !1, 'strict_null'
         61        OP_DATA                                                  ~79
   85    62        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A85%24a'
         63        ASSIGN                                           ~82     !15, ~81
         64        ASSIGN_DIM                                               !1, 'numeric'
         65        OP_DATA                                                  ~82
   88    66        ASSIGN                                           ~84     !16, !15
         67        ASSIGN_DIM                                               !1, 'strict_numeric'
         68        OP_DATA                                                  ~84
   90    69        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A90%24b'
         70        ASSIGN                                           ~87     !17, ~86
         71        ASSIGN_DIM                                               !1, 'object'
         72        OP_DATA                                                  ~87
   93    73        ASSIGN                                           ~89     !18, !17
         74        ASSIGN_DIM                                               !1, 'strict_object'
         75        OP_DATA                                                  ~89
   95    76        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A95%24c'
         77        ASSIGN                                           ~92     !19, ~91
         78        ASSIGN_DIM                                               !1, 'callable'
         79        OP_DATA                                                  ~92
   98    80        ASSIGN                                           ~94     !20, !19
         81        ASSIGN_DIM                                               !1, 'strict_callable'
         82        OP_DATA                                                  ~94
  100    83        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A100%24d'
         84        ASSIGN                                           ~97     !21, ~96
         85        ASSIGN_DIM                                               !1, 'resource'
         86        OP_DATA                                                  ~97
  103    87        ASSIGN                                           ~99     !22, !21
         88        ASSIGN_DIM                                               !1, 'strict_resource'
         89        OP_DATA                                                  ~99
  105    90        ASSIGN                                           ~101    !23, !9
         91        ASSIGN_DIM                                               !1, 'integer'
         92        OP_DATA                                                  ~101
  107    93        ASSIGN                                           ~103    !24, !10
         94        ASSIGN_DIM                                               !1, 'strict_integer'
         95        OP_DATA                                                  ~103
  109    96        ASSIGN                                           ~105    !25, !7
         97        ASSIGN_DIM                                               !1, 'double'
         98        OP_DATA                                                  ~105
  111    99        ASSIGN                                           ~107    !26, !8
        100        ASSIGN_DIM                                               !1, 'strict_double'
        101        OP_DATA                                                  ~107
  113   102        ASSIGN                                           ~109    !27, !7
        103        ASSIGN_DIM                                               !1, 'real'
        104        OP_DATA                                                  ~109
  115   105        ASSIGN                                           ~111    !28, !8
        106        ASSIGN_DIM                                               !1, 'strict_real'
        107        OP_DATA                                                  ~111
  117   108        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A117%24e'
        109        ASSIGN                                           ~114    !29, ~113
        110        ASSIGN_DIM                                               !1, 'scalar'
        111        OP_DATA                                                  ~114
  120   112        ASSIGN                                           ~116    !30, !29
        113        ASSIGN_DIM                                               !1, 'strict_scalar'
        114        OP_DATA                                                  ~116
  122   115        ASSIGN                                           ~118    !31, !9
        116        ASSIGN_DIM                                               !1, 'long'
        117        OP_DATA                                                  ~118
  124   118        ASSIGN                                           ~120    !32, !10
        119        ASSIGN_DIM                                               !1, 'strict_long'
        120        OP_DATA                                                  ~120
  126   121        ASSIGN                                                   !33, <array>
  127   122        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FlU5mk%3A127%24f'
        123        BIND_LEXICAL                                             ~122, !1
        124        BIND_LEXICAL                                             ~122, !33
        125        ASSIGN                                                   !34, ~122
  175   126      > RETURN                                                   null

End of function hhb_mustbe1

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A46%240:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  {closure}
number of ops:  4
compiled vars:  !0 = $invar
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   46     0  E >   RECV                                             !0      
   47     1        TYPE_CHECK                                  128  ~1      !0
          2      > RETURN                                                   ~1
   48     3*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FlU5mk%3A46%240

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A51%241:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  {closure}
number of ops:  10
compiled vars:  !0 = $invar, !1 = $res
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   51     0  E >   RECV                                             !0      
          1        INIT_FCALL                                               'filter_var'
          2        SEND_VAR                                                 !0
          3        SEND_VAL                                                 258
          4        SEND_VAL                                                 134217728
          5        DO_ICALL                                         $2      
          6        ASSIGN                                                   !1, $2
   52     7        TYPE_CHECK                                  1020  ~4      !1
          8      > RETURN                                                   ~4
   53     9*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FlU5mk%3A51%241

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A54%242:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  {closure}
number of ops:  4
compiled vars:  !0 = $invar
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   54     0  E >   RECV                                             !0      
   55     1        TYPE_CHECK                                   12  ~1      !0
          2      > RETURN                                                   ~1
   56     3*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FlU5mk%3A54%242

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A57%243:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  {closure}
number of ops:  9
compiled vars:  !0 = $invar, !1 = $res
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   57     0  E >   RECV                                             !0      
          1        INIT_FCALL                                               'filter_var'
          2        SEND_VAR                                                 !0
          3        SEND_VAL                                                 259
          4        DO_ICALL                                         $2      
          5        ASSIGN                                                   !1, $2
   58     6        TYPE_CHECK                                  1018  ~4      !1
          7      > RETURN                                                   ~4
   59     8*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FlU5mk%3A57%243

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A60%244:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  {closure}
number of ops:  4
compiled vars:  !0 = $invar
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   60     0  E >   RECV                                             !0      
   61     1        TYPE_CHECK                                   32  ~1      !0
          2      > RETURN                                                   ~1
   62     3*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FlU5mk%3A60%244

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A63%245:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  {closure}
number of ops:  9
compiled vars:  !0 = $invar, !1 = $res
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   63     0  E >   RECV                                             !0      
          1        INIT_FCALL                                               'filter_var'
          2        SEND_VAR                                                 !0
          3        SEND_VAL                                                 257
          4        DO_ICALL                                         $2      
          5        ASSIGN                                                   !1, $2
   64     6        TYPE_CHECK                                  1018  ~4      !1
          7      > RETURN                                                   ~4
   65     8*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FlU5mk%3A63%245

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A66%246:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  {closure}
number of ops:  6
compiled vars:  !0 = $invar
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   66     0  E >   RECV                                             !0      
   67     1        INIT_FCALL                                               'is_infinite'
          2        SEND_VAR                                                 !0
          3        DO_ICALL                                         $1      
          4      > RETURN                                                   $1
   68     5*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FlU5mk%3A66%246

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A69%247:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
Found catch point at position: 5
Branch analysis from position: 5
2 jumps found. (Code = 107) Position 1 = 6, Position 2 = -2
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  {closure}
number of ops:  8
compiled vars:  !0 = $invar, !1 = $ex
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   69     0  E >   RECV                                             !0      
   71     1        CAST                                          6  ~2      !0
          2        ASSIGN                                                   !0, ~2
   72     3      > RETURN                                                   <true>
          4*       JMP                                                      ->7
   73     5  E > > CATCH                                       last         'Exception'
   74     6    > > RETURN                                                   <false>
   76     7*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FlU5mk%3A69%247

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A77%248:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  {closure}
number of ops:  4
compiled vars:  !0 = $invar
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   77     0  E >   RECV                                             !0      
   78     1        TYPE_CHECK                                   64  ~1      !0
          2      > RETURN                                                   ~1
   79     3*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FlU5mk%3A77%248

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A80%249:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  {closure}
number of ops:  4
compiled vars:  !0 = $invar
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   80     0  E >   RECV                                             !0      
   81     1        TYPE_CHECK                                    2  ~1      !0
          2      > RETURN                                                   ~1
   82     3*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FlU5mk%3A80%249

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A85%24a:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  {closure}
number of ops:  6
compiled vars:  !0 = $invar, !1 = $var
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   85     0  E >   RECV                                             !0      
   86     1        INIT_FCALL                                               'is_numeric'
          2        SEND_VAR                                                 !1
          3        DO_ICALL                                         $2      
          4      > RETURN                                                   $2
   87     5*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FlU5mk%3A85%24a

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A90%24b:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  {closure}
number of ops:  4
compiled vars:  !0 = $invar
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   90     0  E >   RECV                                             !0      
   91     1        TYPE_CHECK                                  256  ~1      !0
          2      > RETURN                                                   ~1
   92     3*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FlU5mk%3A90%24b

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A95%24c:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  {closure}
number of ops:  6
compiled vars:  !0 = $invar
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   95     0  E >   RECV                                             !0      
   96     1        INIT_FCALL                                               'is_callable'
          2        SEND_VAR                                                 !0
          3        DO_ICALL                                         $1      
          4      > RETURN                                                   $1
   97     5*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FlU5mk%3A95%24c

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A100%24d:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  {closure}
number of ops:  4
compiled vars:  !0 = $invar
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  100     0  E >   RECV                                             !0      
  101     1        TYPE_CHECK                                  512  ~1      !0
          2      > RETURN                                                   ~1
  102     3*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FlU5mk%3A100%24d

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A117%24e:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/lU5mk
function name:  {closure}
number of ops:  4
compiled vars:  !0 = $invar
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  117     0  E >   RECV                                             !0      
  118     1        TYPE_CHECK                                  124  ~1      !0
          2      > RETURN                                                   ~1
  119     3*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FlU5mk%3A117%24e

Function %00%7Bclosure%7D%2Fin%2FlU5mk%3A127%24f:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 6, Position 2 = 9
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 14
Branch analysis from position: 10
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 14
2 jumps found. (Code = 43) Position 1 = 16, Position 2 = 20
Branch analysis from position: 16
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 20
2 jumps found. (Code = 77) Position 1 = 26, Position 2 = 123
Branch analysis from position: 26
2 jumps found. (Code = 78) Position 1 = 27, Position 2 = 123
Branch analysis from position: 27
2 jumps found. (Code = 77) Position 1 = 44, Position 2 = 121
Branch analysis from position: 44
2 jumps found. (Code = 78) Position 1 = 45, Position 2 = 121
Branch analysis from position: 45
2 jumps found. (Code = 43) Position 1 = 47, Position 2 = 55
Branch analysis from position: 47
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 55
2 jumps found. (Code = 43) Position 1 = 57, Position 2 = 83
Branch analysis from position: 57
2 jumps found. (Code = 43) Position 1 = 60, Position 2 = 75
Branch analysis from position: 60
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 75
1 jumps found. (Code = 42) Position 1 = 44
Branch analysis from position: 44
Branch analysis from position: 83
2 jumps found. (Code = 43) Position 1 = 85, Position 2 = 110
Branch analysis from position: 85
2 jumps found. (Code = 43) Position 1 = 88, Position 2 = 103
Branch analysis from position: 88
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 103
1 jumps found. (Code = 42) Position 1 = 44
Branch analysis from position: 44
Branch analysis from position: 110
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 121
1 jumps found. (Code = 42) Position 1 = 26
Branch analysis from position: 26
Branch analysis from position: 121
Branch analysis from position: 123
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 123
Branch analysis from position: 9
filename:       /in/lU5mk
function name:  {closure}
number of ops:  125
compiled vars:  !0 = $invar, !1 = $validators, !2 = $operators, !3 = $rawlists, !4 = $list, !5 = $tmparr, !6 = $next_must_be, !7 = $rawlist, !8 = $previous_tmpval, !9 = $tmpval, !10 = $rawvalidator
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  127     0  E >   RECV                                             !0      
          1        BIND_STATIC                                              !1
          2        BIND_STATIC                                              !2
  128     3        TYPE_CHECK                                   64  ~11     !0
          4        BOOL_NOT                                         ~12     ~11
          5      > JMPZ_EX                                          ~12     ~12, ->9
          6    >   TYPE_CHECK                                  128  ~13     !0
          7        BOOL_NOT                                         ~14     ~13
          8        BOOL                                             ~12     ~14
          9    > > JMPZ                                                     ~12, ->14
  129    10    >   NEW                                              $15     'BadFunctionCallException'
         11        SEND_VAL_EX                                              'you%27re+using+hhb_musbe1+wrong%21+every+list+of+validators+must+be+string+or+array%21'
         12        DO_FCALL                                      0          
         13      > THROW                                         0          $15
  131    14    >   TYPE_CHECK                                  128          !0
         15      > JMPZ                                                     ~17, ->20
  132    16    >   NEW                                              $18     'Exception'
         17        SEND_VAL_EX                                              'sorry%2C+array+of+validators+is+not+supported%2Fimplemented+YET..'
         18        DO_FCALL                                      0          
         19      > THROW                                         0          $18
  135    20    >   INIT_ARRAY                                       ~20     !0
         21        ASSIGN                                                   !3, ~20
  136    22        ASSIGN                                                   !4, <array>
  137    23        ASSIGN                                                   !5, <array>
  138    24        ASSIGN                                                   !6, 'validator'
  139    25      > FE_RESET_R                                       $25     !3, ->123
         26    > > FE_FETCH_R                                               $25, !7, ->123
  140    27    >   INIT_FCALL                                               'preg_replace'
         28        SEND_VAL                                                 '%2F%5Cs%2B%2F'
         29        SEND_VAL                                                 '+'
         30        SEND_VAR             

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
156.55 ms | 1428 KiB | 26 Q