3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Palette { protected static $_valid_colours = array( 'red' => array(255,0,0), 'green' => array(0,255,0), 'blue' => array(0,0,255), 'yellow' => array(255,255,0), 'magenta' => array(255,0,255), 'cyan' => array(0,255,255), 'black' => array(0,0,0) ); protected $_selected_colours; public function __construct($selections){ foreach($selections as $selection){ if( is_array($selection) ){ if( count($selection) !== 3 ){ throw new InvalidArgumentException("Invalid RGB value"); } foreach( $selection as $value ){ if( !is_int($value) || $value < 0 || $value > 255 ){ throw new InvalidArgumentException("Invalid RGB value"); } } $this->_selected_colours[] = $selection; continue; } if( !is_string($selection) ){ throw new InvalidArgumentException("Invalid (non-string, non-array) colour"); } $selection = strtolower($selection); if( !isset(static::$_valid_colours[ $selection ]) ){ throw new InvalidArgumentException("Unknown colour [$selection]"); } $this->_selected_colours[] = static::$_valid_colours[ $selection ]; } } public function get_colours() { return $this->_selected_colours; } }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/BhfPb
function name:  (null)
number of ops:  1
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   48     0  E > > RETURN                                                   1

Class Palette:
Function __construct:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 2, Position 2 = 61
Branch analysis from position: 2
2 jumps found. (Code = 78) Position 1 = 3, Position 2 = 61
Branch analysis from position: 3
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 33
Branch analysis from position: 5
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 12
Branch analysis from position: 8
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 12
2 jumps found. (Code = 77) Position 1 = 13, Position 2 = 28
Branch analysis from position: 13
2 jumps found. (Code = 78) Position 1 = 14, Position 2 = 28
Branch analysis from position: 14
2 jumps found. (Code = 47) Position 1 = 17, Position 2 = 19
Branch analysis from position: 17
2 jumps found. (Code = 47) Position 1 = 20, Position 2 = 22
Branch analysis from position: 20
2 jumps found. (Code = 43) Position 1 = 23, Position 2 = 27
Branch analysis from position: 23
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 27
1 jumps found. (Code = 42) Position 1 = 13
Branch analysis from position: 13
Branch analysis from position: 22
Branch analysis from position: 19
Branch analysis from position: 28
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 28
Branch analysis from position: 33
2 jumps found. (Code = 43) Position 1 = 36, Position 2 = 40
Branch analysis from position: 36
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 40
2 jumps found. (Code = 43) Position 1 = 48, Position 2 = 55
Branch analysis from position: 48
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 55
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 61
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 61
filename:       /in/BhfPb
function name:  __construct
number of ops:  63
compiled vars:  !0 = $selections, !1 = $selection, !2 = $value
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   15     0  E >   RECV                                             !0      
   16     1      > FE_RESET_R                                       $3      !0, ->61
          2    > > FE_FETCH_R                                               $3, !1, ->61
   17     3    >   TYPE_CHECK                                  128          !1
          4      > JMPZ                                                     ~4, ->33
   18     5    >   COUNT                                            ~5      !1
          6        IS_NOT_IDENTICAL                                         ~5, 3
          7      > JMPZ                                                     ~6, ->12
   19     8    >   NEW                                              $7      'InvalidArgumentException'
          9        SEND_VAL_EX                                              'Invalid+RGB+value'
         10        DO_FCALL                                      0          
         11      > THROW                                         0          $7
   22    12    > > FE_RESET_R                                       $9      !1, ->28
         13    > > FE_FETCH_R                                               $9, !2, ->28
   23    14    >   TYPE_CHECK                                   16  ~10     !2
         15        BOOL_NOT                                         ~11     ~10
         16      > JMPNZ_EX                                         ~11     ~11, ->19
         17    >   IS_SMALLER                                       ~12     !2, 0
         18        BOOL                                             ~11     ~12
         19    > > JMPNZ_EX                                         ~11     ~11, ->22
         20    >   IS_SMALLER                                       ~13     255, !2
         21        BOOL                                             ~11     ~13
         22    > > JMPZ                                                     ~11, ->27
   24    23    >   NEW                                              $14     'InvalidArgumentException'
         24        SEND_VAL_EX                                              'Invalid+RGB+value'
         25        DO_FCALL                                      0          
         26      > THROW                                         0          $14
   22    27    > > JMP                                                      ->13
         28    >   FE_FREE                                                  $9
   28    29        FETCH_OBJ_W                                      $16     '_selected_colours'
         30        ASSIGN_DIM                                               $16
         31        OP_DATA                                                  !1
   29    32      > JMP                                                      ->2
   32    33    >   TYPE_CHECK                                   64  ~18     !1
         34        BOOL_NOT                                         ~19     ~18
         35      > JMPZ                                                     ~19, ->40
   33    36    >   NEW                                              $20     'InvalidArgumentException'
         37        SEND_VAL_EX                                              'Invalid+%28non-string%2C+non-array%29+colour'
         38        DO_FCALL                                      0          
         39      > THROW                                         0          $20
   36    40    >   INIT_FCALL                                               'strtolower'
         41        SEND_VAR                                                 !1
         42        DO_ICALL                                         $22     
         43        ASSIGN                                                   !1, $22
   37    44        FETCH_STATIC_PROP_IS                             ~24     '_valid_colours'
         45        ISSET_ISEMPTY_DIM_OBJ                         0  ~25     ~24, !1
         46        BOOL_NOT                                         ~26     ~25
         47      > JMPZ                                                     ~26, ->55
   38    48    >   NEW                                              $27     'InvalidArgumentException'
         49        ROPE_INIT                                     3  ~29     'Unknown+colour+%5B'
         50        ROPE_ADD                                      1  ~29     ~29, !1
         51        ROPE_END                                      2  ~28     ~29, '%5D'
         52        SEND_VAL_EX                                              ~28
         53        DO_FCALL                                      0          
         54      > THROW                                         0          $27
   40    55    >   FETCH_STATIC_PROP_R          unknown             ~34     '_valid_colours'
         56        FETCH_DIM_R                                      ~35     ~34, !1
         57        FETCH_OBJ_W                                      $32     '_selected_colours'
         58        ASSIGN_DIM                                               $32
         59        OP_DATA                                                  ~35
   16    60      > JMP                                                      ->2
         61    >   FE_FREE                                                  $3
   42    62      > RETURN                                                   null

End of function __construct

Function get_colours:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/BhfPb
function name:  get_colours
number of ops:  3
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   46     0  E >   FETCH_OBJ_R                                      ~0      '_selected_colours'
          1      > RETURN                                                   ~0
   47     2*     > RETURN                                                   null

End of function get_colours

End of class Palette.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
156.12 ms | 1408 KiB | 15 Q