3v4l.org

run code in 500+ PHP versions simultaneously
<?php abstract class AbstractEmployee { protected $rank; protected $isBoss; public function __construct(int $rank, bool $isBoss) { $this->rank = $rank; $this->isBoss = $isBoss; } abstract function getBasicSalary(): float; abstract function getBasicCoffee(): float; abstract function getBasicPages(): float; public function getSalary(): float { $salary = $this->getBasicSalary(); if ($this->rank == 2) { $salary *= 1.25; } elseif ($this->rank == 3) { $salary *= 1.5; } if ($this->isBoss == true) { $salary *= 1.5; } return round($salary, 1); } public function getCoffee(): float { $coffee = $this->getBasicCoffee(); if ($this->isBoss == true) { $coffee *= 2; } return $coffee; } public function getPages(): float { $pages = $this->getBasicPages(); if ($this->isBoss == true) { $pages = 0; } return $pages; } } class Manager extends AbstractEmployee { public function getBasicSalary(): float { return 500; } public function getBasicCoffee(): float { return 20; } public function getBasicPages(): float { return 200; } } class Marketer extends AbstractEmployee { public function getBasicSalary(): float { return 400; } public function getBasicCoffee(): float { return 15; } public function getBasicPages(): float { return 150; } } class Engineer extends AbstractEmployee { public function getBasicSalary(): float { return 200; } public function getBasicCoffee(): float { return 5; } public function getBasicPages(): float { return 50; } } class Analyst extends AbstractEmployee { public function getBasicSalary(): float { return 800; } public function getBasicCoffee(): float { return 50; } public function getBasicPages(): float { return 5; } } class Department { private $name; private $employees = array(); public function __construct(string $name) { $this->name = $name; } public function addEmployees(int $count, string $profession, int $rank, bool $isBoss): void { if ($profession == "Manager") { for ($i = 0; $i < $count; $i++) { $this->employees[] = new Manager($rank, $isBoss); } } elseif ($profession == "Marketer") { for ($i = 0; $i < $count; $i++) { $this->employees[] = new Marketer($rank, $isBoss); } } elseif ($profession == "Engineer") { for ($i = 0; $i < $count; $i++) { $this->employees[] = new Engineer($rank, $isBoss); } } elseif ($profession == "Analyst") { for ($i = 0; $i < $count; $i++) { $this->employees[] = new Analyst($rank, $isBoss); } } } public function getInformation(): array { $information = array(); $information['name'] = $this->name; $information['employeesCount'] = count($this->employees); $information['selary'] = 0; $information['coffee'] = 0; $information['pages'] = 0; foreach ($this->employees as $employee) { $information['selary'] += $employee->getSalary(); $information['coffee'] += $employee->getCoffee(); $information['pages'] += $employee->getPages(); } return $information; } } class Vektor { private $departments = array(); public function addDepartment (Department $department): void { $this->departments[] = $department; } public function getDepartments(): array { return $this->departments; } public function getDepartmentsCount(): int { return count($this->departments); } } class Table { public function printTable (Vektor $vektor): void { $this->printLine("Департамент", "сотр.", "тугр.", "кофе", "стр.", "тугр/стр."); echo str_repeat("-", 70); echo "\n"; $employeesCount = 0; $totalSelary = 0; $totalCoffee = 0; $totalPages = 0; $totalSelarySharePages = 0; foreach ($vektor->getDepartments() as $department) { $employeesCount += $department->getInformation()['employeesCount']; $totalSelary += $department->getInformation()['selary']; $totalCoffee += $department->getInformation()['coffee']; $totalPages += $department->getInformation()['pages']; $totalSelarySharePages += $totalSelary / $totalPages; $this->printLine($department->getInformation()['name'], $department->getInformation()['employeesCount'], $department->getInformation()['selary'], $department->getInformation()['coffee'], $department->getInformation()['pages'], round($department->getInformation()['selary'] / $department->getInformation()['pages']), 1); } echo "\n"; $this->printLine("Среднее", round($employeesCount / $vektor->getDepartmentsCount(), 1), round($totalSelary / $vektor->getDepartmentsCount(), 1), round($totalCoffee / $vektor->getDepartmentsCount(), 1), round($totalPages / $vektor->getDepartmentsCount(), 1), round($totalSelarySharePages / $vektor->getDepartmentsCount(), 1)); $this->printLine("Всего", $employeesCount, $totalSelary, $totalCoffee, $totalPages, round($totalSelarySharePages, 1)); } private function printLine(string $title, $employees, $salary, $coffee, $pages, $salarySharePages): void { echo $this->padRight($title, 15); $this->padLeft($employees, 10) . $this->padLeft($salary, 10) . $this->padLeft($coffee, 10) . $this->padLeft($pages, 10) . $this->padLeft($salarySharePages, 15); echo "\n"; } private function padLeft ($field, int $col): void { echo str_repeat(" ", $col - mb_strlen($field)).$field; } private function padRight ($field, int $col) { echo $field.str_repeat(" ", $col - mb_strlen($field)); } } $procurementDepartment = new Department("Закупок"); $procurementDepartment->addEmployees(9, "Manager", 1, false); $procurementDepartment->addEmployees(3, "Manager", 2, false); $procurementDepartment->addEmployees(2, "Manager", 3, false); $procurementDepartment->addEmployees(2, "Marketer", 1, false); $procurementDepartment->addEmployees(1, "Manager", 2, true); $salesDepartment = new Department("Продаж"); $salesDepartment->addEmployees(12, "Manager", 1, false); $salesDepartment->addEmployees(6, "Marketer", 1, false); $salesDepartment->addEmployees(3, "Analyst", 1, false); $salesDepartment->addEmployees(2, "Analyst", 2, false); $salesDepartment->addEmployees(1, "Marketer", 2, true); $advertisingDepartment = new Department("Рекламы"); $advertisingDepartment->addEmployees(15, "Marketer", 1, false); $advertisingDepartment->addEmployees(10, "Marketer", 2, false); $advertisingDepartment->addEmployees(8, "Manager", 1, false); $advertisingDepartment->addEmployees(2, "Engineer", 1, false); $advertisingDepartment->addEmployees(1, "Marketer", 3, true); $logisticsDepartment = new Department("Логистики"); $logisticsDepartment->addEmployees(13, "Manager", 1, false); $logisticsDepartment->addEmployees(5, "Manager", 2, false); $logisticsDepartment->addEmployees(5, "Engineer", 1, false); $logisticsDepartment->addEmployees(1, "Manager", 1, true); $vektor = new Vektor(); $vektor->addDepartment($procurementDepartment); $vektor->addDepartment($salesDepartment); $vektor->addDepartment($advertisingDepartment); $vektor->addDepartment($logisticsDepartment); $table = new Table(); $table->printTable($vektor);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  (null)
number of ops:  152
compiled vars:  !0 = $procurementDepartment, !1 = $salesDepartment, !2 = $advertisingDepartment, !3 = $logisticsDepartment, !4 = $vektor, !5 = $table
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  231     0  E >   NEW                                                  $6      'Department'
          1        SEND_VAL_EX                                                  '%D0%97%D0%B0%D0%BA%D1%83%D0%BF%D0%BE%D0%BA'
          2        DO_FCALL                                          0          
          3        ASSIGN                                                       !0, $6
  232     4        INIT_METHOD_CALL                                             !0, 'addEmployees'
          5        SEND_VAL_EX                                                  9
          6        SEND_VAL_EX                                                  'Manager'
          7        SEND_VAL_EX                                                  1
          8        SEND_VAL_EX                                                  <false>
          9        DO_FCALL                                          0          
  233    10        INIT_METHOD_CALL                                             !0, 'addEmployees'
         11        SEND_VAL_EX                                                  3
         12        SEND_VAL_EX                                                  'Manager'
         13        SEND_VAL_EX                                                  2
         14        SEND_VAL_EX                                                  <false>
         15        DO_FCALL                                          0          
  234    16        INIT_METHOD_CALL                                             !0, 'addEmployees'
         17        SEND_VAL_EX                                                  2
         18        SEND_VAL_EX                                                  'Manager'
         19        SEND_VAL_EX                                                  3
         20        SEND_VAL_EX                                                  <false>
         21        DO_FCALL                                          0          
  235    22        INIT_METHOD_CALL                                             !0, 'addEmployees'
         23        SEND_VAL_EX                                                  2
         24        SEND_VAL_EX                                                  'Marketer'
         25        SEND_VAL_EX                                                  1
         26        SEND_VAL_EX                                                  <false>
         27        DO_FCALL                                          0          
  236    28        INIT_METHOD_CALL                                             !0, 'addEmployees'
         29        SEND_VAL_EX                                                  1
         30        SEND_VAL_EX                                                  'Manager'
         31        SEND_VAL_EX                                                  2
         32        SEND_VAL_EX                                                  <true>
         33        DO_FCALL                                          0          
  238    34        NEW                                                  $14     'Department'
         35        SEND_VAL_EX                                                  '%D0%9F%D1%80%D0%BE%D0%B4%D0%B0%D0%B6'
         36        DO_FCALL                                          0          
         37        ASSIGN                                                       !1, $14
  239    38        INIT_METHOD_CALL                                             !1, 'addEmployees'
         39        SEND_VAL_EX                                                  12
         40        SEND_VAL_EX                                                  'Manager'
         41        SEND_VAL_EX                                                  1
         42        SEND_VAL_EX                                                  <false>
         43        DO_FCALL                                          0          
  240    44        INIT_METHOD_CALL                                             !1, 'addEmployees'
         45        SEND_VAL_EX                                                  6
         46        SEND_VAL_EX                                                  'Marketer'
         47        SEND_VAL_EX                                                  1
         48        SEND_VAL_EX                                                  <false>
         49        DO_FCALL                                          0          
  241    50        INIT_METHOD_CALL                                             !1, 'addEmployees'
         51        SEND_VAL_EX                                                  3
         52        SEND_VAL_EX                                                  'Analyst'
         53        SEND_VAL_EX                                                  1
         54        SEND_VAL_EX                                                  <false>
         55        DO_FCALL                                          0          
  242    56        INIT_METHOD_CALL                                             !1, 'addEmployees'
         57        SEND_VAL_EX                                                  2
         58        SEND_VAL_EX                                                  'Analyst'
         59        SEND_VAL_EX                                                  2
         60        SEND_VAL_EX                                                  <false>
         61        DO_FCALL                                          0          
  243    62        INIT_METHOD_CALL                                             !1, 'addEmployees'
         63        SEND_VAL_EX                                                  1
         64        SEND_VAL_EX                                                  'Marketer'
         65        SEND_VAL_EX                                                  2
         66        SEND_VAL_EX                                                  <true>
         67        DO_FCALL                                          0          
  246    68        NEW                                                  $22     'Department'
         69        SEND_VAL_EX                                                  '%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D1%8B'
         70        DO_FCALL                                          0          
         71        ASSIGN                                                       !2, $22
  247    72        INIT_METHOD_CALL                                             !2, 'addEmployees'
         73        SEND_VAL_EX                                                  15
         74        SEND_VAL_EX                                                  'Marketer'
         75        SEND_VAL_EX                                                  1
         76        SEND_VAL_EX                                                  <false>
         77        DO_FCALL                                          0          
  248    78        INIT_METHOD_CALL                                             !2, 'addEmployees'
         79        SEND_VAL_EX                                                  10
         80        SEND_VAL_EX                                                  'Marketer'
         81        SEND_VAL_EX                                                  2
         82        SEND_VAL_EX                                                  <false>
         83        DO_FCALL                                          0          
  249    84        INIT_METHOD_CALL                                             !2, 'addEmployees'
         85        SEND_VAL_EX                                                  8
         86        SEND_VAL_EX                                                  'Manager'
         87        SEND_VAL_EX                                                  1
         88        SEND_VAL_EX                                                  <false>
         89        DO_FCALL                                          0          
  250    90        INIT_METHOD_CALL                                             !2, 'addEmployees'
         91        SEND_VAL_EX                                                  2
         92        SEND_VAL_EX                                                  'Engineer'
         93        SEND_VAL_EX                                                  1
         94        SEND_VAL_EX                                                  <false>
         95        DO_FCALL                                          0          
  251    96        INIT_METHOD_CALL                                             !2, 'addEmployees'
         97        SEND_VAL_EX                                                  1
         98        SEND_VAL_EX                                                  'Marketer'
         99        SEND_VAL_EX                                                  3
        100        SEND_VAL_EX                                                  <true>
        101        DO_FCALL                                          0          
  253   102        NEW                                                  $30     'Department'
        103        SEND_VAL_EX                                                  '%D0%9B%D0%BE%D0%B3%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B8'
        104        DO_FCALL                                          0          
        105        ASSIGN                                                       !3, $30
  254   106        INIT_METHOD_CALL                                             !3, 'addEmployees'
        107        SEND_VAL_EX                                                  13
        108        SEND_VAL_EX                                                  'Manager'
        109        SEND_VAL_EX                                                  1
        110        SEND_VAL_EX                                                  <false>
        111        DO_FCALL                                          0          
  255   112        INIT_METHOD_CALL                                             !3, 'addEmployees'
        113        SEND_VAL_EX                                                  5
        114        SEND_VAL_EX                                                  'Manager'
        115        SEND_VAL_EX                                                  2
        116        SEND_VAL_EX                                                  <false>
        117        DO_FCALL                                          0          
  256   118        INIT_METHOD_CALL                                             !3, 'addEmployees'
        119        SEND_VAL_EX                                                  5
        120        SEND_VAL_EX                                                  'Engineer'
        121        SEND_VAL_EX                                                  1
        122        SEND_VAL_EX                                                  <false>
        123        DO_FCALL                                          0          
  257   124        INIT_METHOD_CALL                                             !3, 'addEmployees'
        125        SEND_VAL_EX                                                  1
        126        SEND_VAL_EX                                                  'Manager'
        127        SEND_VAL_EX                                                  1
        128        SEND_VAL_EX                                                  <true>
        129        DO_FCALL                                          0          
  259   130        NEW                                                  $37     'Vektor'
        131        DO_FCALL                                          0          
        132        ASSIGN                                                       !4, $37
  260   133        INIT_METHOD_CALL                                             !4, 'addDepartment'
        134        SEND_VAR_EX                                                  !0
        135        DO_FCALL                                          0          
  261   136        INIT_METHOD_CALL                                             !4, 'addDepartment'
        137        SEND_VAR_EX                                                  !1
        138        DO_FCALL                                          0          
  262   139        INIT_METHOD_CALL                                             !4, 'addDepartment'
        140        SEND_VAR_EX                                                  !2
        141        DO_FCALL                                          0          
  263   142        INIT_METHOD_CALL                                             !4, 'addDepartment'
        143        SEND_VAR_EX                                                  !3
        144        DO_FCALL                                          0          
  265   145        NEW                                                  $44     'Table'
        146        DO_FCALL                                          0          
        147        ASSIGN                                                       !5, $44
  266   148        INIT_METHOD_CALL                                             !5, 'printTable'
        149        SEND_VAR_EX                                                  !4
        150        DO_FCALL                                          0          
        151      > RETURN                                                       1

Class AbstractEmployee:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  __construct
number of ops:  7
compiled vars:  !0 = $rank, !1 = $isBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    7     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
    8     2        ASSIGN_OBJ                                                   'rank'
          3        OP_DATA                                                      !0
    9     4        ASSIGN_OBJ                                                   'isBoss'
          5        OP_DATA                                                      !1
   10     6      > RETURN                                                       null

End of function __construct

Function getbasicsalary:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getBasicSalary
number of ops:  2
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   12     0  E >   VERIFY_RETURN_TYPE                                           
          1      > RETURN                                                       null

End of function getbasicsalary

Function getbasiccoffee:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getBasicCoffee
number of ops:  2
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   13     0  E >   VERIFY_RETURN_TYPE                                           
          1      > RETURN                                                       null

End of function getbasiccoffee

Function getbasicpages:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getBasicPages
number of ops:  2
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   14     0  E >   VERIFY_RETURN_TYPE                                           
          1      > RETURN                                                       null

End of function getbasicpages

Function getsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 12
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
Branch analysis from position: 16
Branch analysis from position: 12
filename:       /in/3avqA
function name:  getSalary
number of ops:  24
compiled vars:  !0 = $salary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   17     0  E >   INIT_METHOD_CALL                                             'getBasicSalary'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   19     3        FETCH_OBJ_R                                          ~3      'rank'
          4        IS_EQUAL                                                     ~3, 2
          5      > JMPZ                                                         ~4, ->8
   20     6    >   ASSIGN_OP                                         3          !0, 1.25
   19     7      > JMP                                                          ->12
   21     8    >   FETCH_OBJ_R                                          ~6      'rank'
          9        IS_EQUAL                                                     ~6, 3
         10      > JMPZ                                                         ~7, ->12
   22    11    >   ASSIGN_OP                                         3          !0, 1.5
   25    12    >   FETCH_OBJ_R                                          ~9      'isBoss'
         13        IS_EQUAL                                                     ~9, <true>
         14      > JMPZ                                                         ~10, ->16
   26    15    >   ASSIGN_OP                                         3          !0, 1.5
   29    16    >   INIT_FCALL                                                   'round'
         17        SEND_VAR                                                     !0
         18        SEND_VAL                                                     1
         19        DO_ICALL                                             $12     
         20        VERIFY_RETURN_TYPE                                           $12
         21      > RETURN                                                       $12
   30    22*       VERIFY_RETURN_TYPE                                           
         23*     > RETURN                                                       null

End of function getsalary

Function getcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/3avqA
function name:  getCoffee
number of ops:  11
compiled vars:  !0 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   33     0  E >   INIT_METHOD_CALL                                             'getBasicCoffee'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   35     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, <true>
          5      > JMPZ                                                         ~4, ->7
   36     6    >   ASSIGN_OP                                         3          !0, 2
   39     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   40     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getcoffee

Function getpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/3avqA
function name:  getPages
number of ops:  11
compiled vars:  !0 = $pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   43     0  E >   INIT_METHOD_CALL                                             'getBasicPages'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   45     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, <true>
          5      > JMPZ                                                         ~4, ->7
   46     6    >   ASSIGN                                                       !0, 0
   49     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   50     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getpages

End of class AbstractEmployee.

Class Manager:
Function getbasicsalary:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getBasicSalary
number of ops:  4
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   55     0  E >   VERIFY_RETURN_TYPE                                   ~0      500
          1      > RETURN                                                       ~0
   56     2*       VERIFY_RETURN_TYPE                                           
          3*     > RETURN                                                       null

End of function getbasicsalary

Function getbasiccoffee:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getBasicCoffee
number of ops:  4
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   59     0  E >   VERIFY_RETURN_TYPE                                   ~0      20
          1      > RETURN                                                       ~0
   60     2*       VERIFY_RETURN_TYPE                                           
          3*     > RETURN                                                       null

End of function getbasiccoffee

Function getbasicpages:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getBasicPages
number of ops:  4
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   63     0  E >   VERIFY_RETURN_TYPE                                   ~0      200
          1      > RETURN                                                       ~0
   64     2*       VERIFY_RETURN_TYPE                                           
          3*     > RETURN                                                       null

End of function getbasicpages

Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  __construct
number of ops:  7
compiled vars:  !0 = $rank, !1 = $isBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    7     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
    8     2        ASSIGN_OBJ                                                   'rank'
          3        OP_DATA                                                      !0
    9     4        ASSIGN_OBJ                                                   'isBoss'
          5        OP_DATA                                                      !1
   10     6      > RETURN                                                       null

End of function __construct

Function getsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 12
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
Branch analysis from position: 16
Branch analysis from position: 12
filename:       /in/3avqA
function name:  getSalary
number of ops:  24
compiled vars:  !0 = $salary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   17     0  E >   INIT_METHOD_CALL                                             'getBasicSalary'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   19     3        FETCH_OBJ_R                                          ~3      'rank'
          4        IS_EQUAL                                                     ~3, 2
          5      > JMPZ                                                         ~4, ->8
   20     6    >   ASSIGN_OP                                         3          !0, 1.25
   19     7      > JMP                                                          ->12
   21     8    >   FETCH_OBJ_R                                          ~6      'rank'
          9        IS_EQUAL                                                     ~6, 3
         10      > JMPZ                                                         ~7, ->12
   22    11    >   ASSIGN_OP                                         3          !0, 1.5
   25    12    >   FETCH_OBJ_R                                          ~9      'isBoss'
         13        IS_EQUAL                                                     ~9, <true>
         14      > JMPZ                                                         ~10, ->16
   26    15    >   ASSIGN_OP                                         3          !0, 1.5
   29    16    >   INIT_FCALL                                                   'round'
         17        SEND_VAR                                                     !0
         18        SEND_VAL                                                     1
         19        DO_ICALL                                             $12     
         20        VERIFY_RETURN_TYPE                                           $12
         21      > RETURN                                                       $12
   30    22*       VERIFY_RETURN_TYPE                                           
         23*     > RETURN                                                       null

End of function getsalary

Function getcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/3avqA
function name:  getCoffee
number of ops:  11
compiled vars:  !0 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   33     0  E >   INIT_METHOD_CALL                                             'getBasicCoffee'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   35     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, <true>
          5      > JMPZ                                                         ~4, ->7
   36     6    >   ASSIGN_OP                                         3          !0, 2
   39     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   40     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getcoffee

Function getpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/3avqA
function name:  getPages
number of ops:  11
compiled vars:  !0 = $pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   43     0  E >   INIT_METHOD_CALL                                             'getBasicPages'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   45     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, <true>
          5      > JMPZ                                                         ~4, ->7
   46     6    >   ASSIGN                                                       !0, 0
   49     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   50     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getpages

End of class Manager.

Class Marketer:
Function getbasicsalary:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getBasicSalary
number of ops:  4
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   69     0  E >   VERIFY_RETURN_TYPE                                   ~0      400
          1      > RETURN                                                       ~0
   70     2*       VERIFY_RETURN_TYPE                                           
          3*     > RETURN                                                       null

End of function getbasicsalary

Function getbasiccoffee:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getBasicCoffee
number of ops:  4
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   73     0  E >   VERIFY_RETURN_TYPE                                   ~0      15
          1      > RETURN                                                       ~0
   74     2*       VERIFY_RETURN_TYPE                                           
          3*     > RETURN                                                       null

End of function getbasiccoffee

Function getbasicpages:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getBasicPages
number of ops:  4
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   77     0  E >   VERIFY_RETURN_TYPE                                   ~0      150
          1      > RETURN                                                       ~0
   78     2*       VERIFY_RETURN_TYPE                                           
          3*     > RETURN                                                       null

End of function getbasicpages

Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  __construct
number of ops:  7
compiled vars:  !0 = $rank, !1 = $isBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    7     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
    8     2        ASSIGN_OBJ                                                   'rank'
          3        OP_DATA                                                      !0
    9     4        ASSIGN_OBJ                                                   'isBoss'
          5        OP_DATA                                                      !1
   10     6      > RETURN                                                       null

End of function __construct

Function getsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 12
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
Branch analysis from position: 16
Branch analysis from position: 12
filename:       /in/3avqA
function name:  getSalary
number of ops:  24
compiled vars:  !0 = $salary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   17     0  E >   INIT_METHOD_CALL                                             'getBasicSalary'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   19     3        FETCH_OBJ_R                                          ~3      'rank'
          4        IS_EQUAL                                                     ~3, 2
          5      > JMPZ                                                         ~4, ->8
   20     6    >   ASSIGN_OP                                         3          !0, 1.25
   19     7      > JMP                                                          ->12
   21     8    >   FETCH_OBJ_R                                          ~6      'rank'
          9        IS_EQUAL                                                     ~6, 3
         10      > JMPZ                                                         ~7, ->12
   22    11    >   ASSIGN_OP                                         3          !0, 1.5
   25    12    >   FETCH_OBJ_R                                          ~9      'isBoss'
         13        IS_EQUAL                                                     ~9, <true>
         14      > JMPZ                                                         ~10, ->16
   26    15    >   ASSIGN_OP                                         3          !0, 1.5
   29    16    >   INIT_FCALL                                                   'round'
         17        SEND_VAR                                                     !0
         18        SEND_VAL                                                     1
         19        DO_ICALL                                             $12     
         20        VERIFY_RETURN_TYPE                                           $12
         21      > RETURN                                                       $12
   30    22*       VERIFY_RETURN_TYPE                                           
         23*     > RETURN                                                       null

End of function getsalary

Function getcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/3avqA
function name:  getCoffee
number of ops:  11
compiled vars:  !0 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   33     0  E >   INIT_METHOD_CALL                                             'getBasicCoffee'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   35     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, <true>
          5      > JMPZ                                                         ~4, ->7
   36     6    >   ASSIGN_OP                                         3          !0, 2
   39     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   40     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getcoffee

Function getpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/3avqA
function name:  getPages
number of ops:  11
compiled vars:  !0 = $pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   43     0  E >   INIT_METHOD_CALL                                             'getBasicPages'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   45     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, <true>
          5      > JMPZ                                                         ~4, ->7
   46     6    >   ASSIGN                                                       !0, 0
   49     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   50     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getpages

End of class Marketer.

Class Engineer:
Function getbasicsalary:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getBasicSalary
number of ops:  4
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   83     0  E >   VERIFY_RETURN_TYPE                                   ~0      200
          1      > RETURN                                                       ~0
   84     2*       VERIFY_RETURN_TYPE                                           
          3*     > RETURN                                                       null

End of function getbasicsalary

Function getbasiccoffee:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getBasicCoffee
number of ops:  4
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   87     0  E >   VERIFY_RETURN_TYPE                                   ~0      5
          1      > RETURN                                                       ~0
   88     2*       VERIFY_RETURN_TYPE                                           
          3*     > RETURN                                                       null

End of function getbasiccoffee

Function getbasicpages:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getBasicPages
number of ops:  4
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   91     0  E >   VERIFY_RETURN_TYPE                                   ~0      50
          1      > RETURN                                                       ~0
   92     2*       VERIFY_RETURN_TYPE                                           
          3*     > RETURN                                                       null

End of function getbasicpages

Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  __construct
number of ops:  7
compiled vars:  !0 = $rank, !1 = $isBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    7     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
    8     2        ASSIGN_OBJ                                                   'rank'
          3        OP_DATA                                                      !0
    9     4        ASSIGN_OBJ                                                   'isBoss'
          5        OP_DATA                                                      !1
   10     6      > RETURN                                                       null

End of function __construct

Function getsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 12
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
Branch analysis from position: 16
Branch analysis from position: 12
filename:       /in/3avqA
function name:  getSalary
number of ops:  24
compiled vars:  !0 = $salary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   17     0  E >   INIT_METHOD_CALL                                             'getBasicSalary'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   19     3        FETCH_OBJ_R                                          ~3      'rank'
          4        IS_EQUAL                                                     ~3, 2
          5      > JMPZ                                                         ~4, ->8
   20     6    >   ASSIGN_OP                                         3          !0, 1.25
   19     7      > JMP                                                          ->12
   21     8    >   FETCH_OBJ_R                                          ~6      'rank'
          9        IS_EQUAL                                                     ~6, 3
         10      > JMPZ                                                         ~7, ->12
   22    11    >   ASSIGN_OP                                         3          !0, 1.5
   25    12    >   FETCH_OBJ_R                                          ~9      'isBoss'
         13        IS_EQUAL                                                     ~9, <true>
         14      > JMPZ                                                         ~10, ->16
   26    15    >   ASSIGN_OP                                         3          !0, 1.5
   29    16    >   INIT_FCALL                                                   'round'
         17        SEND_VAR                                                     !0
         18        SEND_VAL                                                     1
         19        DO_ICALL                                             $12     
         20        VERIFY_RETURN_TYPE                                           $12
         21      > RETURN                                                       $12
   30    22*       VERIFY_RETURN_TYPE                                           
         23*     > RETURN                                                       null

End of function getsalary

Function getcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/3avqA
function name:  getCoffee
number of ops:  11
compiled vars:  !0 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   33     0  E >   INIT_METHOD_CALL                                             'getBasicCoffee'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   35     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, <true>
          5      > JMPZ                                                         ~4, ->7
   36     6    >   ASSIGN_OP                                         3          !0, 2
   39     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   40     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getcoffee

Function getpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/3avqA
function name:  getPages
number of ops:  11
compiled vars:  !0 = $pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   43     0  E >   INIT_METHOD_CALL                                             'getBasicPages'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   45     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, <true>
          5      > JMPZ                                                         ~4, ->7
   46     6    >   ASSIGN                                                       !0, 0
   49     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   50     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getpages

End of class Engineer.

Class Analyst:
Function getbasicsalary:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getBasicSalary
number of ops:  4
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   97     0  E >   VERIFY_RETURN_TYPE                                   ~0      800
          1      > RETURN                                                       ~0
   98     2*       VERIFY_RETURN_TYPE                                           
          3*     > RETURN                                                       null

End of function getbasicsalary

Function getbasiccoffee:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getBasicCoffee
number of ops:  4
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  101     0  E >   VERIFY_RETURN_TYPE                                   ~0      50
          1      > RETURN                                                       ~0
  102     2*       VERIFY_RETURN_TYPE                                           
          3*     > RETURN                                                       null

End of function getbasiccoffee

Function getbasicpages:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getBasicPages
number of ops:  4
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  105     0  E >   VERIFY_RETURN_TYPE                                   ~0      5
          1      > RETURN                                                       ~0
  106     2*       VERIFY_RETURN_TYPE                                           
          3*     > RETURN                                                       null

End of function getbasicpages

Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  __construct
number of ops:  7
compiled vars:  !0 = $rank, !1 = $isBoss
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    7     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
    8     2        ASSIGN_OBJ                                                   'rank'
          3        OP_DATA                                                      !0
    9     4        ASSIGN_OBJ                                                   'isBoss'
          5        OP_DATA                                                      !1
   10     6      > RETURN                                                       null

End of function __construct

Function getsalary:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 12
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 16
Branch analysis from position: 15
Branch analysis from position: 16
Branch analysis from position: 12
filename:       /in/3avqA
function name:  getSalary
number of ops:  24
compiled vars:  !0 = $salary
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   17     0  E >   INIT_METHOD_CALL                                             'getBasicSalary'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   19     3        FETCH_OBJ_R                                          ~3      'rank'
          4        IS_EQUAL                                                     ~3, 2
          5      > JMPZ                                                         ~4, ->8
   20     6    >   ASSIGN_OP                                         3          !0, 1.25
   19     7      > JMP                                                          ->12
   21     8    >   FETCH_OBJ_R                                          ~6      'rank'
          9        IS_EQUAL                                                     ~6, 3
         10      > JMPZ                                                         ~7, ->12
   22    11    >   ASSIGN_OP                                         3          !0, 1.5
   25    12    >   FETCH_OBJ_R                                          ~9      'isBoss'
         13        IS_EQUAL                                                     ~9, <true>
         14      > JMPZ                                                         ~10, ->16
   26    15    >   ASSIGN_OP                                         3          !0, 1.5
   29    16    >   INIT_FCALL                                                   'round'
         17        SEND_VAR                                                     !0
         18        SEND_VAL                                                     1
         19        DO_ICALL                                             $12     
         20        VERIFY_RETURN_TYPE                                           $12
         21      > RETURN                                                       $12
   30    22*       VERIFY_RETURN_TYPE                                           
         23*     > RETURN                                                       null

End of function getsalary

Function getcoffee:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/3avqA
function name:  getCoffee
number of ops:  11
compiled vars:  !0 = $coffee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   33     0  E >   INIT_METHOD_CALL                                             'getBasicCoffee'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   35     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, <true>
          5      > JMPZ                                                         ~4, ->7
   36     6    >   ASSIGN_OP                                         3          !0, 2
   39     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   40     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getcoffee

Function getpages:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/3avqA
function name:  getPages
number of ops:  11
compiled vars:  !0 = $pages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   43     0  E >   INIT_METHOD_CALL                                             'getBasicPages'
          1        DO_FCALL                                          0  $1      
          2        ASSIGN                                                       !0, $1
   45     3        FETCH_OBJ_R                                          ~3      'isBoss'
          4        IS_EQUAL                                                     ~3, <true>
          5      > JMPZ                                                         ~4, ->7
   46     6    >   ASSIGN                                                       !0, 0
   49     7    >   VERIFY_RETURN_TYPE                                           !0
          8      > RETURN                                                       !0
   50     9*       VERIFY_RETURN_TYPE                                           
         10*     > RETURN                                                       null

End of function getpages

End of class Analyst.

Class Department:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  __construct
number of ops:  4
compiled vars:  !0 = $name
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  113     0  E >   RECV                                                 !0      
  114     1        ASSIGN_OBJ                                                   'name'
          2        OP_DATA                                                      !0
  115     3      > RETURN                                                       null

End of function __construct

Function addemployees:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 19
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
2 jumps found. (Code = 44) Position 1 = 18, Position 2 = 8
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 63
Branch analysis from position: 63
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
2 jumps found. (Code = 44) Position 1 = 18, Position 2 = 8
Branch analysis from position: 18
Branch analysis from position: 8
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 34
Branch analysis from position: 21
1 jumps found. (Code = 42) Position 1 = 31
Branch analysis from position: 31
2 jumps found. (Code = 44) Position 1 = 33, Position 2 = 23
Branch analysis from position: 33
1 jumps found. (Code = 42) Position 1 = 63
Branch analysis from position: 63
Branch analysis from position: 23
2 jumps found. (Code = 44) Position 1 = 33, Position 2 = 23
Branch analysis from position: 33
Branch analysis from position: 23
Branch analysis from position: 34
2 jumps found. (Code = 43) Position 1 = 36, Position 2 = 49
Branch analysis from position: 36
1 jumps found. (Code = 42) Position 1 = 46
Branch analysis from position: 46
2 jumps found. (Code = 44) Position 1 = 48, Position 2 = 38
Branch analysis from position: 48
1 jumps found. (Code = 42) Position 1 = 63
Branch analysis from position: 63
Branch analysis from position: 38
2 jumps found. (Code = 44) Position 1 = 48, Position 2 = 38
Branch analysis from position: 48
Branch analysis from position: 38
Branch analysis from position: 49
2 jumps found. (Code = 43) Position 1 = 51, Position 2 = 63
Branch analysis from position: 51
1 jumps found. (Code = 42) Position 1 = 61
Branch analysis from position: 61
2 jumps found. (Code = 44) Position 1 = 63, Position 2 = 53
Branch analysis from position: 63
Branch analysis from position: 53
2 jumps found. (Code = 44) Position 1 = 63, Position 2 = 53
Branch analysis from position: 63
Branch analysis from position: 53
Branch analysis from position: 63
filename:       /in/3avqA
function name:  addEmployees
number of ops:  64
compiled vars:  !0 = $count, !1 = $profession, !2 = $rank, !3 = $isBoss, !4 = $i
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  117     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
          2        RECV                                                 !2      
          3        RECV                                                 !3      
  118     4        IS_EQUAL                                                     !1, 'Manager'
          5      > JMPZ                                                         ~5, ->19
  119     6    >   ASSIGN                                                       !4, 0
          7      > JMP                                                          ->16
  120     8    >   NEW                                                  $9      'Manager'
          9        SEND_VAR_EX                                                  !2
         10        SEND_VAR_EX                                                  !3
         11        DO_FCALL                                          0          
         12        FETCH_OBJ_W                                          $7      'employees'
         13        ASSIGN_DIM                                                   $7
         14        OP_DATA                                                      $9
  119    15        PRE_INC                                                      !4
         16    >   IS_SMALLER                                                   !4, !0
         17      > JMPNZ                                                        ~12, ->8
  118    18    > > JMP                                                          ->63
  122    19    >   IS_EQUAL                                                     !1, 'Marketer'
         20      > JMPZ                                                         ~13, ->34
  123    21    >   ASSIGN                                                       !4, 0
         22      > JMP                                                          ->31
  124    23    >   NEW                                                  $17     'Marketer'
         24        SEND_VAR_EX                                                  !2
         25        SEND_VAR_EX                                                  !3
         26        DO_FCALL                                          0          
         27        FETCH_OBJ_W                                          $15     'employees'
         28        ASSIGN_DIM                                                   $15
         29        OP_DATA                                                      $17
  123    30        PRE_INC                                                      !4
         31    >   IS_SMALLER                                                   !4, !0
         32      > JMPNZ                                                        ~20, ->23
  122    33    > > JMP                                                          ->63
  126    34    >   IS_EQUAL                                                     !1, 'Engineer'
         35      > JMPZ                                                         ~21, ->49
  127    36    >   ASSIGN                                                       !4, 0
         37      > JMP                                                          ->46
  128    38    >   NEW                                                  $25     'Engineer'
         39        SEND_VAR_EX                                                  !2
         40        SEND_VAR_EX                                                  !3
         41        DO_FCALL                                          0          
         42        FETCH_OBJ_W                                          $23     'employees'
         43        ASSIGN_DIM                                                   $23
         44        OP_DATA                                                      $25
  127    45        PRE_INC                                                      !4
         46    >   IS_SMALLER                                                   !4, !0
         47      > JMPNZ                                                        ~28, ->38
  126    48    > > JMP                                                          ->63
  130    49    >   IS_EQUAL                                                     !1, 'Analyst'
         50      > JMPZ                                                         ~29, ->63
  131    51    >   ASSIGN                                                       !4, 0
         52      > JMP                                                          ->61
  132    53    >   NEW                                                  $33     'Analyst'
         54        SEND_VAR_EX                                                  !2
         55        SEND_VAR_EX                                                  !3
         56        DO_FCALL                                          0          
         57        FETCH_OBJ_W                                          $31     'employees'
         58        ASSIGN_DIM                                                   $31
         59        OP_DATA                                                      $33
  131    60        PRE_INC                                                      !4
         61    >   IS_SMALLER                                                   !4, !0
         62      > JMPNZ                                                        ~36, ->53
  135    63    > > RETURN                                                       null

End of function addemployees

Function getinformation:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 16, Position 2 = 30
Branch analysis from position: 16
2 jumps found. (Code = 78) Position 1 = 17, Position 2 = 30
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
Branch analysis from position: 30
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 30
filename:       /in/3avqA
function name:  getInformation
number of ops:  35
compiled vars:  !0 = $information, !1 = $employee
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  138     0  E >   ASSIGN                                                       !0, <array>
  139     1        FETCH_OBJ_R                                          ~4      'name'
          2        ASSIGN_DIM                                                   !0, 'name'
          3        OP_DATA                                                      ~4
  140     4        FETCH_OBJ_R                                          ~6      'employees'
          5        COUNT                                                ~7      ~6
          6        ASSIGN_DIM                                                   !0, 'employeesCount'
          7        OP_DATA                                                      ~7
  141     8        ASSIGN_DIM                                                   !0, 'selary'
          9        OP_DATA                                                      0
  142    10        ASSIGN_DIM                                                   !0, 'coffee'
         11        OP_DATA                                                      0
  143    12        ASSIGN_DIM                                                   !0, 'pages'
         13        OP_DATA                                                      0
  145    14        FETCH_OBJ_R                                          ~11     'employees'
         15      > FE_RESET_R                                           $12     ~11, ->30
         16    > > FE_FETCH_R                                                   $12, !1, ->30
  146    17    >   INIT_METHOD_CALL                                             !1, 'getSalary'
         18        DO_FCALL                                          0  $14     
         19        ASSIGN_DIM_OP                    +=               1          !0, 'selary'
         20        OP_DATA                                                      $14
  147    21        INIT_METHOD_CALL                                             !1, 'getCoffee'
         22        DO_FCALL                                          0  $16     
         23        ASSIGN_DIM_OP                    +=               1          !0, 'coffee'
         24        OP_DATA                                                      $16
  148    25        INIT_METHOD_CALL                                             !1, 'getPages'
         26        DO_FCALL                                          0  $18     
         27        ASSIGN_DIM_OP                    +=               1          !0, 'pages'
         28        OP_DATA                                                      $18
  145    29      > JMP                                                          ->16
         30    >   FE_FREE                                                      $12
  151    31        VERIFY_RETURN_TYPE                                           !0
         32      > RETURN                                                       !0
  152    33*       VERIFY_RETURN_TYPE                                           
         34*     > RETURN                                                       null

End of function getinformation

End of class Department.

Class Vektor:
Function adddepartment:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  addDepartment
number of ops:  5
compiled vars:  !0 = $department
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  158     0  E >   RECV                                                 !0      
  159     1        FETCH_OBJ_W                                          $1      'departments'
          2        ASSIGN_DIM                                                   $1
          3        OP_DATA                                                      !0
  160     4      > RETURN                                                       null

End of function adddepartment

Function getdepartments:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getDepartments
number of ops:  5
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  163     0  E >   FETCH_OBJ_R                                          ~0      'departments'
          1        VERIFY_RETURN_TYPE                                           ~0
          2      > RETURN                                                       ~0
  164     3*       VERIFY_RETURN_TYPE                                           
          4*     > RETURN                                                       null

End of function getdepartments

Function getdepartmentscount:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  getDepartmentsCount
number of ops:  6
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  167     0  E >   FETCH_OBJ_R                                          ~0      'departments'
          1        COUNT                                                ~1      ~0
          2        VERIFY_RETURN_TYPE                                           ~1
          3      > RETURN                                                       ~1
  168     4*       VERIFY_RETURN_TYPE                                           
          5*     > RETURN                                                       null

End of function getdepartmentscount

End of class Vektor.

Class Table:
Function printtable:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 23, Position 2 = 82
Branch analysis from position: 23
2 jumps found. (Code = 78) Position 1 = 24, Position 2 = 82
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 23
Branch analysis from position: 23
Branch analysis from position: 82
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 82
filename:       /in/3avqA
function name:  printTable
number of ops:  140
compiled vars:  !0 = $vektor, !1 = $employeesCount, !2 = $totalSelary, !3 = $totalCoffee, !4 = $totalPages, !5 = $totalSelarySharePages, !6 = $department
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  172     0  E >   RECV                                                 !0      
  174     1        INIT_METHOD_CALL                                             'printLine'
          2        SEND_VAL_EX                                                  '%D0%94%D0%B5%D0%BF%D0%B0%D1%80%D1%82%D0%B0%D0%BC%D0%B5%D0%BD%D1%82'
          3        SEND_VAL_EX                                                  '%D1%81%D0%BE%D1%82%D1%80.'
          4        SEND_VAL_EX                                                  '%D1%82%D1%83%D0%B3%D1%80.'
          5        SEND_VAL_EX                                                  '%D0%BA%D0%BE%D1%84%D0%B5'
          6        SEND_VAL_EX                                                  '%D1%81%D1%82%D1%80.'
          7        SEND_VAL_EX                                                  '%D1%82%D1%83%D0%B3%D1%80%2F%D1%81%D1%82%D1%80.'
          8        DO_FCALL                                          0          
  175     9        INIT_FCALL                                                   'str_repeat'
         10        SEND_VAL                                                     '-'
         11        SEND_VAL                                                     70
         12        DO_ICALL                                             $8      
         13        ECHO                                                         $8
  176    14        ECHO                                                         '%0A'
  178    15        ASSIGN                                                       !1, 0
  179    16        ASSIGN                                                       !2, 0
  180    17        ASSIGN                                                       !3, 0
  181    18        ASSIGN                                                       !4, 0
  182    19        ASSIGN                                                       !5, 0
  184    20        INIT_METHOD_CALL                                             !0, 'getDepartments'
         21        DO_FCALL                                          0  $14     
         22      > FE_RESET_R                                           $15     $14, ->82
         23    > > FE_FETCH_R                                                   $15, !6, ->82
  186    24    >   INIT_METHOD_CALL                                             !6, 'getInformation'
         25        DO_FCALL                                          0  $16     
         26        FETCH_DIM_R                                          ~17     $16, 'employeesCount'
         27        ASSIGN_OP                                         1          !1, ~17
  187    28        INIT_METHOD_CALL                                             !6, 'getInformation'
         29        DO_FCALL                                          0  $19     
         30        FETCH_DIM_R                                          ~20     $19, 'selary'
         31        ASSIGN_OP                                         1          !2, ~20
  188    32        INIT_METHOD_CALL                                             !6, 'getInformation'
         33        DO_FCALL                                          0  $22     
         34        FETCH_DIM_R                                          ~23     $22, 'coffee'
         35        ASSIGN_OP                                         1          !3, ~23
  189    36        INIT_METHOD_CALL                                             !6, 'getInformation'
         37        DO_FCALL                                          0  $25     
         38        FETCH_DIM_R                                          ~26     $25, 'pages'
         39        ASSIGN_OP                                         1          !4, ~26
  190    40        DIV                                                  ~28     !2, !4
         41        ASSIGN_OP                                         1          !5, ~28
  192    42        INIT_METHOD_CALL                                             'printLine'
         43        CHECK_FUNC_ARG                                               
         44        INIT_METHOD_CALL                                             !6, 'getInformation'
         45        DO_FCALL                                          0  $30     
         46        FETCH_DIM_FUNC_ARG                                   $31     $30, 'name'
         47        SEND_FUNC_ARG                                                $31
         48        CHECK_FUNC_ARG                                               
  193    49        INIT_METHOD_CALL                                             !6, 'getInformation'
         50        DO_FCALL                                          0  $32     
         51        FETCH_DIM_FUNC_ARG                                   $33     $32, 'employeesCount'
         52        SEND_FUNC_ARG                                                $33
         53        CHECK_FUNC_ARG                                               
  194    54        INIT_METHOD_CALL                                             !6, 'getInformation'
         55        DO_FCALL                                          0  $34     
         56        FETCH_DIM_FUNC_ARG                                   $35     $34, 'selary'
         57        SEND_FUNC_ARG                                                $35
         58        CHECK_FUNC_ARG                                               
  195    59        INIT_METHOD_CALL                                             !6, 'getInformation'
         60        DO_FCALL                                          0  $36     
         61        FETCH_DIM_FUNC_ARG                                   $37     $36, 'coffee'
         62        SEND_FUNC_ARG                                                $37
         63        CHECK_FUNC_ARG                                               
  196    64        INIT_METHOD_CALL                                             !6, 'getInformation'
         65        DO_FCALL                                          0  $38     
         66        FETCH_DIM_FUNC_ARG                                   $39     $38, 'pages'
         67        SEND_FUNC_ARG                                                $39
  197    68        INIT_FCALL                                                   'round'
         69        INIT_METHOD_CALL                                             !6, 'getInformation'
         70        DO_FCALL                                          0  $40     
         71        FETCH_DIM_R                                          ~41     $40, 'selary'
         72        INIT_METHOD_CALL                                             !6, 'getInformation'
         73        DO_FCALL                                          0  $42     
         74        FETCH_DIM_R                                          ~43     $42, 'pages'
         75        DIV                                                  ~44     ~41, ~43
         76        SEND_VAL                                                     ~44
         77        DO_ICALL                                             $45     
         78        SEND_VAR_NO_REF_EX                                           $45
         79        SEND_VAL_EX                                                  1
  192    80        DO_FCALL                                          0          
  184    81      > JMP                                                          ->23
         82    >   FE_FREE                                                      $15
  200    83        ECHO                                                         '%0A'
  202    84        INIT_METHOD_CALL                                             'printLine'
         85        SEND_VAL_EX                                                  '%D0%A1%D1%80%D0%B5%D0%B4%D0%BD%D0%B5%D0%B5'
  203    86        INIT_FCALL                                                   'round'
         87        INIT_METHOD_CALL                                             !0, 'getDepartmentsCount'
         88        DO_FCALL                                          0  $47     
         89        DIV                                                  ~48     !1, $47
         90        SEND_VAL                                                     ~48
         91        SEND_VAL                                                     1
         92        DO_ICALL                                             $49     
         93        SEND_VAR_NO_REF_EX                                           $49
  204    94        INIT_FCALL                                                   'round'
         95        INIT_METHOD_CALL                                             !0, 'getDepartmentsCount'
         96        DO_FCALL                                          0  $50     
         97        DIV                                                  ~51     !2, $50
         98        SEND_VAL                                                     ~51
         99        SEND_VAL                                                     1
        100        DO_ICALL                                             $52     
        101        SEND_VAR_NO_REF_EX                                           $52
  205   102        INIT_FCALL                                                   'round'
        103        INIT_METHOD_CALL                                             !0, 'getDepartmentsCount'
        104        DO_FCALL                                          0  $53     
        105        DIV                                                  ~54     !3, $53
        106        SEND_VAL                                                     ~54
        107        SEND_VAL                                                     1
        108        DO_ICALL                                             $55     
        109        SEND_VAR_NO_REF_EX                                           $55
  206   110        INIT_FCALL                                                   'round'
        111        INIT_METHOD_CALL                                             !0, 'getDepartmentsCount'
        112        DO_FCALL                                          0  $56     
        113        DIV                                                  ~57     !4, $56
        114        SEND_VAL                                                     ~57
        115        SEND_VAL                                                     1
        116        DO_ICALL                                             $58     
        117        SEND_VAR_NO_REF_EX                                           $58
  207   118        INIT_FCALL                                                   'round'
        119        INIT_METHOD_CALL                                             !0, 'getDepartmentsCount'
        120        DO_FCALL                                          0  $59     
        121        DIV                                                  ~60     !5, $59
        122        SEND_VAL                                                     ~60
        123        SEND_VAL                                                     1
        124        DO_ICALL                                             $61     
        125        SEND_VAR_NO_REF_EX                                           $61
  202   126        DO_FCALL                                          0          
  209   127        INIT_METHOD_CALL                                             'printLine'
        128        SEND_VAL_EX                                                  '%D0%92%D1%81%D0%B5%D0%B3%D0%BE'
        129        SEND_VAR_EX                                                  !1
        130        SEND_VAR_EX                                                  !2
        131        SEND_VAR_EX                                                  !3
        132        SEND_VAR_EX                                                  !4
        133        INIT_FCALL                                                   'round'
        134        SEND_VAR                                                     !5
        135        SEND_VAL                                                     1
        136        DO_ICALL                                             $63     
        137        SEND_VAR_NO_REF_EX                                           $63
        138        DO_FCALL                                          0          
  210   139      > RETURN                                                       null

End of function printtable

Function printline:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  printLine
number of ops:  38
compiled vars:  !0 = $title, !1 = $employees, !2 = $salary, !3 = $coffee, !4 = $pages, !5 = $salarySharePages
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  212     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
          2        RECV                                                 !2      
          3        RECV                                                 !3      
          4        RECV                                                 !4      
          5        RECV                                                 !5      
  213     6        INIT_METHOD_CALL                                             'padRight'
          7        SEND_VAR_EX                                                  !0
          8        SEND_VAL_EX                                                  15
          9        DO_FCALL                                          0  $6      
         10        ECHO                                                         $6
  214    11        INIT_METHOD_CALL                                             'padLeft'
         12        SEND_VAR_EX                                                  !1
         13        SEND_VAL_EX                                                  10
         14        DO_FCALL                                          0  $7      
  215    15        INIT_METHOD_CALL                                             'padLeft'
         16        SEND_VAR_EX                                                  !2
         17        SEND_VAL_EX                                                  10
         18        DO_FCALL                                          0  $8      
         19        CONCAT                                               ~9      $7, $8
  216    20        INIT_METHOD_CALL                                             'padLeft'
         21        SEND_VAR_EX                                                  !3
         22        SEND_VAL_EX                                                  10
         23        DO_FCALL                                          0  $10     
         24        CONCAT                                               ~11     ~9, $10
  217    25        INIT_METHOD_CALL                                             'padLeft'
         26        SEND_VAR_EX                                                  !4
         27        SEND_VAL_EX                                                  10
         28        DO_FCALL                                          0  $12     
         29        CONCAT                                               ~13     ~11, $12
  218    30        INIT_METHOD_CALL                                             'padLeft'
         31        SEND_VAR_EX                                                  !5
         32        SEND_VAL_EX                                                  15
         33        DO_FCALL                                          0  $14     
         34        CONCAT                                               ~15     ~13, $14
         35        FREE                                                         ~15
  219    36        ECHO                                                         '%0A'
  220    37      > RETURN                                                       null

End of function printline

Function padleft:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  padLeft
number of ops:  13
compiled vars:  !0 = $field, !1 = $col
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  222     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
  223     2        INIT_FCALL                                                   'str_repeat'
          3        SEND_VAL                                                     '+'
          4        INIT_FCALL                                                   'mb_strlen'
          5        SEND_VAR                                                     !0
          6        DO_ICALL                                             $2      
          7        SUB                                                  ~3      !1, $2
          8        SEND_VAL                                                     ~3
          9        DO_ICALL                                             $4      
         10        CONCAT                                               ~5      $4, !0
         11        ECHO                                                         ~5
  224    12      > RETURN                                                       null

End of function padleft

Function padright:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/3avqA
function name:  padRight
number of ops:  13
compiled vars:  !0 = $field, !1 = $col
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  226     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
  227     2        INIT_FCALL                                                   'str_repeat'
          3        SEND_VAL                                                     '+'
          4        INIT_FCALL                                                   'mb_strlen'
          5        SEND_VAR                                                     !0
          6        DO_ICALL                                             $2      
          7        SUB                                                  ~3      !1, $2
          8        SEND_VAL                                                     ~3
          9        DO_ICALL                                             $4      
         10        CONCAT                                               ~5      !0, $4
         11        ECHO                                                         ~5
  228    12      > RETURN                                                       null

End of function padright

End of class Table.

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
169.85 ms | 1804 KiB | 13 Q