3v4l.org

run code in 300+ PHP versions simultaneously
<?php class IssuanceScheme { private $lower_1 = 0; private $upper_1 = 20; private $issuanceFee_1 = '15p'; private $lower_2 = 21; private $upper_2 = 30; private $issuanceFee_2 = '12p'; private $lower_3 = 31; private $upper_3 = null; //50; private $issuanceFee_3 = '10p'; private $lower_4 = null; //51; private $upper_4 = null; //75; private $issuanceFee_4 = null; private $lower_5 = null; //76; // no $upper_5 private $issuanceFee_5 = null; public function calculateIssuanceFee($volume) { $issuanceFee = $this->issuanceFee_1; if ($volume >= $this->lower_1 && ($this->upper_1===null || $volume <= $this->upper_1)) { return $this->issuanceFee_1; } if ($volume >= $this->lower_2 && ($this->upper_2===null || $volume <= $this->upper_2)) { return $this->issuanceFee_2; } if ($volume >= $this->lower_3 && ($this->upper_3===null || $volume <= $this->upper_3)) { return $this->issuanceFee_3; } if ($volume >= $this->lower_4 && ($this->upper_4===null || $volume <= $this->upper_4)) { return $this->issuanceFee_4; } if ($volume >= $this->lower_5) { return $this->issuanceFee_5; } } } $issuanceScheme = new IssuanceScheme; // 15p echo sprintf("Passed in: %s, Exp: %s, Got: %s", 0, '15p', $issuanceScheme->calculateIssuanceFee(0)) . PHP_EOL; echo sprintf("Passed in: %s, Exp: %s, Got: %s", 5, '15p', $issuanceScheme->calculateIssuanceFee(5)). PHP_EOL; echo sprintf("Passed in: %s, Exp: %s, Got: %s", 10, '15p', $issuanceScheme->calculateIssuanceFee(10)). PHP_EOL; echo sprintf("Passed in: %s, Exp: %s, Got: %s", 15, '15p', $issuanceScheme->calculateIssuanceFee(15)). PHP_EOL; echo sprintf("Passed in: %s, Exp: %s, Got: %s", 20, '15p', $issuanceScheme->calculateIssuanceFee(20)). PHP_EOL; // 12p echo sprintf("Passed in: %s, Exp: %s, Got: %s", 25, '12p', $issuanceScheme->calculateIssuanceFee(25)). PHP_EOL; echo sprintf("Passed in: %s, Exp: %s, Got: %s", 30, '12p', $issuanceScheme->calculateIssuanceFee(30)). PHP_EOL; // 10p echo sprintf("Passed in: %s, Exp: %s, Got: %s", 50, '10p', $issuanceScheme->calculateIssuanceFee(50)). PHP_EOL; echo sprintf("Passed in: %s, Exp: %s, Got: %s", 60, '10p', $issuanceScheme->calculateIssuanceFee(60)). PHP_EOL; echo sprintf("Passed in: %s, Exp: %s, Got: %s", 75, '10p', $issuanceScheme->calculateIssuanceFee(75)). PHP_EOL; echo sprintf("Passed in: %s, Exp: %s, Got: %s", 100, '10p', $issuanceScheme->calculateIssuanceFee(100)). PHP_EOL;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/uamib
function name:  (null)
number of ops:  125
compiled vars:  !0 = $issuanceScheme
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   47     0  E >   NEW                                              $1      'IssuanceScheme'
          1        DO_FCALL                                      0          
          2        ASSIGN                                                   !0, $1
   50     3        INIT_FCALL                                               'sprintf'
          4        SEND_VAL                                                 'Passed+in%3A+%25s%2C+Exp%3A+%25s%2C+Got%3A+%25s'
          5        SEND_VAL                                                 0
          6        SEND_VAL                                                 '15p'
          7        INIT_METHOD_CALL                                         !0, 'calculateIssuanceFee'
          8        SEND_VAL_EX                                              0
          9        DO_FCALL                                      0  $4      
         10        SEND_VAR                                                 $4
         11        DO_ICALL                                         $5      
         12        CONCAT                                           ~6      $5, '%0A'
         13        ECHO                                                     ~6
   51    14        INIT_FCALL                                               'sprintf'
         15        SEND_VAL                                                 'Passed+in%3A+%25s%2C+Exp%3A+%25s%2C+Got%3A+%25s'
         16        SEND_VAL                                                 5
         17        SEND_VAL                                                 '15p'
         18        INIT_METHOD_CALL                                         !0, 'calculateIssuanceFee'
         19        SEND_VAL_EX                                              5
         20        DO_FCALL                                      0  $7      
         21        SEND_VAR                                                 $7
         22        DO_ICALL                                         $8      
         23        CONCAT                                           ~9      $8, '%0A'
         24        ECHO                                                     ~9
   52    25        INIT_FCALL                                               'sprintf'
         26        SEND_VAL                                                 'Passed+in%3A+%25s%2C+Exp%3A+%25s%2C+Got%3A+%25s'
         27        SEND_VAL                                                 10
         28        SEND_VAL                                                 '15p'
         29        INIT_METHOD_CALL                                         !0, 'calculateIssuanceFee'
         30        SEND_VAL_EX                                              10
         31        DO_FCALL                                      0  $10     
         32        SEND_VAR                                                 $10
         33        DO_ICALL                                         $11     
         34        CONCAT                                           ~12     $11, '%0A'
         35        ECHO                                                     ~12
   53    36        INIT_FCALL                                               'sprintf'
         37        SEND_VAL                                                 'Passed+in%3A+%25s%2C+Exp%3A+%25s%2C+Got%3A+%25s'
         38        SEND_VAL                                                 15
         39        SEND_VAL                                                 '15p'
         40        INIT_METHOD_CALL                                         !0, 'calculateIssuanceFee'
         41        SEND_VAL_EX                                              15
         42        DO_FCALL                                      0  $13     
         43        SEND_VAR                                                 $13
         44        DO_ICALL                                         $14     
         45        CONCAT                                           ~15     $14, '%0A'
         46        ECHO                                                     ~15
   54    47        INIT_FCALL                                               'sprintf'
         48        SEND_VAL                                                 'Passed+in%3A+%25s%2C+Exp%3A+%25s%2C+Got%3A+%25s'
         49        SEND_VAL                                                 20
         50        SEND_VAL                                                 '15p'
         51        INIT_METHOD_CALL                                         !0, 'calculateIssuanceFee'
         52        SEND_VAL_EX                                              20
         53        DO_FCALL                                      0  $16     
         54        SEND_VAR                                                 $16
         55        DO_ICALL                                         $17     
         56        CONCAT                                           ~18     $17, '%0A'
         57        ECHO                                                     ~18
   57    58        INIT_FCALL                                               'sprintf'
         59        SEND_VAL                                                 'Passed+in%3A+%25s%2C+Exp%3A+%25s%2C+Got%3A+%25s'
         60        SEND_VAL                                                 25
         61        SEND_VAL                                                 '12p'
         62        INIT_METHOD_CALL                                         !0, 'calculateIssuanceFee'
         63        SEND_VAL_EX                                              25
         64        DO_FCALL                                      0  $19     
         65        SEND_VAR                                                 $19
         66        DO_ICALL                                         $20     
         67        CONCAT                                           ~21     $20, '%0A'
         68        ECHO                                                     ~21
   58    69        INIT_FCALL                                               'sprintf'
         70        SEND_VAL                                                 'Passed+in%3A+%25s%2C+Exp%3A+%25s%2C+Got%3A+%25s'
         71        SEND_VAL                                                 30
         72        SEND_VAL                                                 '12p'
         73        INIT_METHOD_CALL                                         !0, 'calculateIssuanceFee'
         74        SEND_VAL_EX                                              30
         75        DO_FCALL                                      0  $22     
         76        SEND_VAR                                                 $22
         77        DO_ICALL                                         $23     
         78        CONCAT                                           ~24     $23, '%0A'
         79        ECHO                                                     ~24
   61    80        INIT_FCALL                                               'sprintf'
         81        SEND_VAL                                                 'Passed+in%3A+%25s%2C+Exp%3A+%25s%2C+Got%3A+%25s'
         82        SEND_VAL                                                 50
         83        SEND_VAL                                                 '10p'
         84        INIT_METHOD_CALL                                         !0, 'calculateIssuanceFee'
         85        SEND_VAL_EX                                              50
         86        DO_FCALL                                      0  $25     
         87        SEND_VAR                                                 $25
         88        DO_ICALL                                         $26     
         89        CONCAT                                           ~27     $26, '%0A'
         90        ECHO                                                     ~27
   62    91        INIT_FCALL                                               'sprintf'
         92        SEND_VAL                                                 'Passed+in%3A+%25s%2C+Exp%3A+%25s%2C+Got%3A+%25s'
         93        SEND_VAL                                                 60
         94        SEND_VAL                                                 '10p'
         95        INIT_METHOD_CALL                                         !0, 'calculateIssuanceFee'
         96        SEND_VAL_EX                                              60
         97        DO_FCALL                                      0  $28     
         98        SEND_VAR                                                 $28
         99        DO_ICALL                                         $29     
        100        CONCAT                                           ~30     $29, '%0A'
        101        ECHO                                                     ~30
   63   102        INIT_FCALL                                               'sprintf'
        103        SEND_VAL                                                 'Passed+in%3A+%25s%2C+Exp%3A+%25s%2C+Got%3A+%25s'
        104        SEND_VAL                                                 75
        105        SEND_VAL                                                 '10p'
        106        INIT_METHOD_CALL                                         !0, 'calculateIssuanceFee'
        107        SEND_VAL_EX                                              75
        108        DO_FCALL                                      0  $31     
        109        SEND_VAR                                                 $31
        110        DO_ICALL                                         $32     
        111        CONCAT                                           ~33     $32, '%0A'
        112        ECHO                                                     ~33
   64   113        INIT_FCALL                                               'sprintf'
        114        SEND_VAL                                                 'Passed+in%3A+%25s%2C+Exp%3A+%25s%2C+Got%3A+%25s'
        115        SEND_VAL                                                 100
        116        SEND_VAL                                                 '10p'
        117        INIT_METHOD_CALL                                         !0, 'calculateIssuanceFee'
        118        SEND_VAL_EX                                              100
        119        DO_FCALL                                      0  $34     
        120        SEND_VAR                                                 $34
        121        DO_ICALL                                         $35     
        122        CONCAT                                           ~36     $35, '%0A'
        123        ECHO                                                     ~36
        124      > RETURN                                                   1

Class IssuanceScheme:
Function calculateissuancefee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 6, Position 2 = 13
Branch analysis from position: 6
2 jumps found. (Code = 47) Position 1 = 9, Position 2 = 12
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 16
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
2 jumps found. (Code = 46) Position 1 = 19, Position 2 = 26
Branch analysis from position: 19
2 jumps found. (Code = 47) Position 1 = 22, Position 2 = 25
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 29
Branch analysis from position: 27
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 29
2 jumps found. (Code = 46) Position 1 = 32, Position 2 = 39
Branch analysis from position: 32
2 jumps found. (Code = 47) Position 1 = 35, Position 2 = 38
Branch analysis from position: 35
2 jumps found. (Code = 43) Position 1 = 40, Position 2 = 42
Branch analysis from position: 40
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 42
2 jumps found. (Code = 46) Position 1 = 45, Position 2 = 52
Branch analysis from position: 45
2 jumps found. (Code = 47) Position 1 = 48, Position 2 = 51
Branch analysis from position: 48
2 jumps found. (Code = 43) Position 1 = 53, Position 2 = 55
Branch analysis from position: 53
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 55
2 jumps found. (Code = 43) Position 1 = 58, Position 2 = 60
Branch analysis from position: 58
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 60
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 51
Branch analysis from position: 52
Branch analysis from position: 38
Branch analysis from position: 39
Branch analysis from position: 25
Branch analysis from position: 26
Branch analysis from position: 12
Branch analysis from position: 13
filename:       /in/uamib
function name:  calculateIssuanceFee
number of ops:  61
compiled vars:  !0 = $volume, !1 = $issuanceFee
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   25     0  E >   RECV                                             !0      
   27     1        FETCH_OBJ_R                                      ~2      'issuanceFee_1'
          2        ASSIGN                                                   !1, ~2
   28     3        FETCH_OBJ_R                                      ~4      'lower_1'
          4        IS_SMALLER_OR_EQUAL                              ~5      ~4, !0
          5      > JMPZ_EX                                          ~5      ~5, ->13
          6    >   FETCH_OBJ_R                                      ~6      'upper_1'
          7        TYPE_CHECK                                    2  ~7      ~6
          8      > JMPNZ_EX                                         ~7      ~7, ->12
          9    >   FETCH_OBJ_R                                      ~8      'upper_1'
         10        IS_SMALLER_OR_EQUAL                              ~9      !0, ~8
         11        BOOL                                             ~7      ~9
         12    >   BOOL                                             ~5      ~7
         13    > > JMPZ                                                     ~5, ->16
   29    14    >   FETCH_OBJ_R                                      ~10     'issuanceFee_1'
         15      > RETURN                                                   ~10
   31    16    >   FETCH_OBJ_R                                      ~11     'lower_2'
         17        IS_SMALLER_OR_EQUAL                              ~12     ~11, !0
         18      > JMPZ_EX                                          ~12     ~12, ->26
         19    >   FETCH_OBJ_R                                      ~13     'upper_2'
         20        TYPE_CHECK                                    2  ~14     ~13
         21      > JMPNZ_EX                                         ~14     ~14, ->25
         22    >   FETCH_OBJ_R                                      ~15     'upper_2'
         23        IS_SMALLER_OR_EQUAL                              ~16     !0, ~15
         24        BOOL                                             ~14     ~16
         25    >   BOOL                                             ~12     ~14
         26    > > JMPZ                                                     ~12, ->29
   32    27    >   FETCH_OBJ_R                                      ~17     'issuanceFee_2'
         28      > RETURN                                                   ~17
   34    29    >   FETCH_OBJ_R                                      ~18     'lower_3'
         30        IS_SMALLER_OR_EQUAL                              ~19     ~18, !0
         31      > JMPZ_EX                                          ~19     ~19, ->39
         32    >   FETCH_OBJ_R                                      ~20     'upper_3'
         33        TYPE_CHECK                                    2  ~21     ~20
         34      > JMPNZ_EX                                         ~21     ~21, ->38
         35    >   FETCH_OBJ_R                                      ~22     'upper_3'
         36        IS_SMALLER_OR_EQUAL                              ~23     !0, ~22
         37        BOOL                                             ~21     ~23
         38    >   BOOL                                             ~19     ~21
         39    > > JMPZ                                                     ~19, ->42
   35    40    >   FETCH_OBJ_R                                      ~24     'issuanceFee_3'
         41      > RETURN                                                   ~24
   37    42    >   FETCH_OBJ_R                                      ~25     'lower_4'
         43        IS_SMALLER_OR_EQUAL                              ~26     ~25, !0
         44      > JMPZ_EX                                          ~26     ~26, ->52
         45    >   FETCH_OBJ_R                                      ~27     'upper_4'
         46        TYPE_CHECK                                    2  ~28     ~27
         47      > JMPNZ_EX                                         ~28     ~28, ->51
         48    >   FETCH_OBJ_R                                      ~29     'upper_4'
         49        IS_SMALLER_OR_EQUAL                              ~30     !0, ~29
         50        BOOL                                             ~28     ~30
         51    >   BOOL                                             ~26     ~28
         52    > > JMPZ                                                     ~26, ->55
   38    53    >   FETCH_OBJ_R                                      ~31     'issuanceFee_4'
         54      > RETURN                                                   ~31
   40    55    >   FETCH_OBJ_R                                      ~32     'lower_5'
         56        IS_SMALLER_OR_EQUAL                                      ~32, !0
         57      > JMPZ                                                     ~33, ->60
   41    58    >   FETCH_OBJ_R                                      ~34     'issuanceFee_5'
         59      > RETURN                                                   ~34
   44    60    > > RETURN                                                   null

End of function calculateissuancefee

End of class IssuanceScheme.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
155.23 ms | 1417 KiB | 15 Q