3v4l.org

run code in 300+ PHP versions simultaneously
<?php $functions = [ 'array_diff', 'array_diff_uassoc', 'array_diff_ukey', 'array_intersect_uassoc', 'array_intersect_ukey', 'array_udiff', 'array_udiff_assoc', 'array_udiff_uassoc', 'array_uintersect', 'array_uintersect_assoc', 'array_uintersect_uassoc', ]; foreach ($functions as $func) { $reflFunc = new ReflectionFunction($func); $nbParams = $reflFunc->getNumberOfParameters(); $nbRequiredParams = $reflFunc->getNumberOfRequiredParameters(); printf("$func ($nbParams params, $nbRequiredParams required) %s VARIADIC", $reflFunc->isVariadic() ? "IS" : "IS NOT"); foreach ($reflFunc->getParameters() as $i => $param) { if ($param->isVariadic()) { printf(" - PARAM #%d%s IS VARIADIC", $i + 1, $param->isOptional() ? " (Opt.)" : ""); } } echo PHP_EOL; }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 2, Position 2 = 53
Branch analysis from position: 2
2 jumps found. (Code = 78) Position 1 = 3, Position 2 = 53
Branch analysis from position: 3
2 jumps found. (Code = 43) Position 1 = 24, Position 2 = 26
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 27
Branch analysis from position: 27
2 jumps found. (Code = 77) Position 1 = 32, Position 2 = 50
Branch analysis from position: 32
2 jumps found. (Code = 78) Position 1 = 33, Position 2 = 50
Branch analysis from position: 33
2 jumps found. (Code = 43) Position 1 = 37, Position 2 = 49
Branch analysis from position: 37
2 jumps found. (Code = 43) Position 1 = 44, Position 2 = 46
Branch analysis from position: 44
1 jumps found. (Code = 42) Position 1 = 47
Branch analysis from position: 47
1 jumps found. (Code = 42) Position 1 = 32
Branch analysis from position: 32
Branch analysis from position: 46
1 jumps found. (Code = 42) Position 1 = 32
Branch analysis from position: 32
Branch analysis from position: 49
Branch analysis from position: 50
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 50
Branch analysis from position: 26
2 jumps found. (Code = 77) Position 1 = 32, Position 2 = 50
Branch analysis from position: 32
Branch analysis from position: 50
Branch analysis from position: 53
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 53
filename:       /in/clKBH
function name:  (null)
number of ops:  55
compiled vars:  !0 = $functions, !1 = $func, !2 = $reflFunc, !3 = $nbParams, !4 = $nbRequiredParams, !5 = $param, !6 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
   17     1      > FE_RESET_R                                       $8      !0, ->53
          2    > > FE_FETCH_R                                               $8, !1, ->53
   18     3    >   NEW                                              $9      'ReflectionFunction'
          4        SEND_VAR_EX                                              !1
          5        DO_FCALL                                      0          
          6        ASSIGN                                                   !2, $9
   19     7        INIT_METHOD_CALL                                         !2, 'getNumberOfParameters'
          8        DO_FCALL                                      0  $12     
          9        ASSIGN                                                   !3, $12
   20    10        INIT_METHOD_CALL                                         !2, 'getNumberOfRequiredParameters'
         11        DO_FCALL                                      0  $14     
         12        ASSIGN                                                   !4, $14
   21    13        INIT_FCALL                                               'printf'
         14        ROPE_INIT                                     6  ~17     !1
         15        ROPE_ADD                                      1  ~17     ~17, '+%28'
         16        ROPE_ADD                                      2  ~17     ~17, !3
         17        ROPE_ADD                                      3  ~17     ~17, '+params%2C+'
         18        ROPE_ADD                                      4  ~17     ~17, !4
         19        ROPE_END                                      5  ~16     ~17, '+required%29+%25s+VARIADIC'
         20        SEND_VAL                                                 ~16
         21        INIT_METHOD_CALL                                         !2, 'isVariadic'
         22        DO_FCALL                                      0  $20     
         23      > JMPZ                                                     $20, ->26
         24    >   QM_ASSIGN                                        ~21     'IS'
         25      > JMP                                                      ->27
         26    >   QM_ASSIGN                                        ~21     'IS+NOT'
         27    >   SEND_VAL                                                 ~21
         28        DO_ICALL                                                 
   22    29        INIT_METHOD_CALL                                         !2, 'getParameters'
         30        DO_FCALL                                      0  $23     
         31      > FE_RESET_R                                       $24     $23, ->50
         32    > > FE_FETCH_R                                       ~25     $24, !5, ->50
         33    >   ASSIGN                                                   !6, ~25
   23    34        INIT_METHOD_CALL                                         !5, 'isVariadic'
         35        DO_FCALL                                      0  $27     
         36      > JMPZ                                                     $27, ->49
   24    37    >   INIT_FCALL                                               'printf'
         38        SEND_VAL                                                 '+-+PARAM+%23%25d%25s+IS+VARIADIC'
         39        ADD                                              ~28     !6, 1
         40        SEND_VAL                                                 ~28
         41        INIT_METHOD_CALL                                         !5, 'isOptional'
         42        DO_FCALL                                      0  $29     
         43      > JMPZ                                                     $29, ->46
         44    >   QM_ASSIGN                                        ~30     '+%28Opt.%29'
         45      > JMP                                                      ->47
         46    >   QM_ASSIGN                                        ~30     ''
         47    >   SEND_VAL                                                 ~30
         48        DO_ICALL                                                 
   22    49    > > JMP                                                      ->32
         50    >   FE_FREE                                                  $24
   27    51        ECHO                                                     '%0A'
   17    52      > JMP                                                      ->2
         53    >   FE_FREE                                                  $8
   28    54      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
172.06 ms | 1405 KiB | 15 Q