3v4l.org

run code in 500+ PHP versions simultaneously
<?php function getData($name, $limit = "50", $page = "1") { foreach((new ReflectionFunction(debug_backtrace()[0]["function"]))->getParameters() as $param) { if(empty(${$param->getName()}) && $param->isOptional()) ${$param->getName()} = $param->getDefaultValue(); } echo $name . PHP_EOL; echo $limit . PHP_EOL; echo $page . PHP_EOL; } //with empty parameters getData("some name", "", "23"); echo str_repeat(PHP_EOL, 3); //without empty paramters getData("some name", "23", "23");
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/cjkVj
function name:  (null)
number of ops:  16
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   16     0  E >   INIT_FCALL                                                   'getdata'
          1        SEND_VAL                                                     'some+name'
          2        SEND_VAL                                                     ''
          3        SEND_VAL                                                     '23'
          4        DO_FCALL                                          0          
   17     5        INIT_FCALL                                                   'str_repeat'
          6        SEND_VAL                                                     '%0A'
          7        SEND_VAL                                                     3
          8        DO_ICALL                                             $1      
          9        ECHO                                                         $1
   20    10        INIT_FCALL                                                   'getdata'
         11        SEND_VAL                                                     'some+name'
         12        SEND_VAL                                                     '23'
         13        SEND_VAL                                                     '23'
         14        DO_FCALL                                          0          
         15      > RETURN                                                       1

Function getdata:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 14, Position 2 = 30
Branch analysis from position: 14
2 jumps found. (Code = 78) Position 1 = 15, Position 2 = 30
Branch analysis from position: 15
2 jumps found. (Code = 46) Position 1 = 19, Position 2 = 22
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 23, Position 2 = 29
Branch analysis from position: 23
1 jumps found. (Code = 42) Position 1 = 14
Branch analysis from position: 14
Branch analysis from position: 29
Branch analysis from position: 22
Branch analysis from position: 30
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 30
filename:       /in/cjkVj
function name:  getData
number of ops:  38
compiled vars:  !0 = $name, !1 = $limit, !2 = $page, !3 = $param
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   RECV                                                 !0      
          1        RECV_INIT                                            !1      '50'
          2        RECV_INIT                                            !2      '1'
    4     3        NEW                                                  $4      'ReflectionFunction'
          4        CHECK_FUNC_ARG                                               
          5        INIT_FCALL                                                   'debug_backtrace'
          6        DO_ICALL                                             $5      
          7        FETCH_DIM_FUNC_ARG                                   $6      $5, 0
          8        FETCH_DIM_FUNC_ARG                                   $7      $6, 'function'
          9        SEND_FUNC_ARG                                                $7
         10        DO_FCALL                                          0          
         11        INIT_METHOD_CALL                                             $4, 'getParameters'
         12        DO_FCALL                                          0  $9      
         13      > FE_RESET_R                                           $10     $9, ->30
         14    > > FE_FETCH_R                                                   $10, !3, ->30
    5    15    >   INIT_METHOD_CALL                                             !3, 'getName'
         16        DO_FCALL                                          0  $11     
         17        ISSET_ISEMPTY_VAR                                 5  ~12     $11
         18      > JMPZ_EX                                              ~12     ~12, ->22
         19    >   INIT_METHOD_CALL                                             !3, 'isOptional'
         20        DO_FCALL                                          0  $13     
         21        BOOL                                                 ~12     $13
         22    > > JMPZ                                                         ~12, ->29
    6    23    >   INIT_METHOD_CALL                                             !3, 'getName'
         24        DO_FCALL                                          0  $14     
         25        INIT_METHOD_CALL                                             !3, 'getDefaultValue'
         26        DO_FCALL                                          0  $16     
         27        FETCH_W                          local               $15     $14
         28        ASSIGN                                                       $15, $16
    4    29    > > JMP                                                          ->14
         30    >   FE_FREE                                                      $10
    9    31        CONCAT                                               ~18     !0, '%0A'
         32        ECHO                                                         ~18
   10    33        CONCAT                                               ~19     !1, '%0A'
         34        ECHO                                                         ~19
   11    35        CONCAT                                               ~20     !2, '%0A'
         36        ECHO                                                         ~20
   12    37      > RETURN                                                       null

End of function getdata

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
163.75 ms | 3078 KiB | 17 Q