fork download
  1. <?php
  2. class Employee
  3. {
  4. public $rank;
  5. public $isBoss;
  6.  
  7. public function getSalary($rank, $isBoss)
  8. {
  9.  
  10. // Если это не босс, то переменной присваевается 1 чтобы при умножение не было ошибки.
  11. if($isBoss == 0){
  12. $percent = 1;
  13. } elseif ($isBoss == 1){
  14. $percent = 1.5;
  15. }
  16.  
  17.  
  18. if ($rank == 1){
  19. return $percent;
  20. } elseif($rank == 2) {
  21. return $percent * 1.25;
  22. } elseif($rank == 3) {
  23. return $percent * 1.5;
  24. }
  25. }
  26. public function getCoffeDrunk(){}
  27. public function __construct($rank, $isBoss)
  28. {
  29. $this->rank = $rank;
  30. $this->isBoss = $isBoss;
  31. }
  32. }
  33.  
  34.  
  35. class Department
  36. {
  37. private $workers = array();
  38. public function getTotalPaid(){}
  39. public function totalCofeeDrunk(){}
  40. public function addWorker($departament, $rank,$isBoss)
  41. {
  42. $this->workers[] = array($departament, $rank, $isBoss);
  43. }
  44. }
  45.  
  46.  
  47.  
  48. class Manager extends Employee
  49. {
  50. public function getRate()
  51. {
  52. return parent::getSalary($this->rank, $this->isBoss) * 500;
  53. }
  54. public function getCoffeDrunk(){}
  55. }
  56.  
  57.  
  58. class Marketer extends Employee
  59. {
  60. public function getRate()
  61. {
  62. return parent::getSalary($this->rank, $this->isBoss) * 400;
  63. }
  64. public function getCoffeDrunk(){}
  65. }
  66.  
  67.  
  68. class Engineer extends Employee
  69. {
  70. public function getRate()
  71. {
  72. return parent::getSalary($this->rank, $this->isBoss) * 200;
  73. }
  74. public function getCoffeDrunk(){}
  75. }
  76.  
  77.  
  78. class Analyst extends Employee
  79. {
  80. public function getRate()
  81. {
  82. return parent::getSalary($this->rank, $this->isBoss) * 800;
  83. }
  84. public function getCoffeDrunk(){}
  85. }
  86.  
  87. $vasya = new Manager(3,0);
  88. echo $vasya->getRate() . "\n";
  89.  
  90. echo $vasya->getRate();
Success #stdin #stdout 0s 82880KB
stdin
Standard input is empty
stdout
750
750