fork download
  1. <?php //департаменты и сотрудники
  2.  
  3.  
  4.  
  5. abstract class Worker
  6. {
  7. private $department;
  8. private $rank;
  9. private $isChief;
  10. private $baseSalary;
  11. private $coffeeConsumptionRate;
  12. private $productionPerMount;
  13. private $productionType;
  14.  
  15. public function getCoffeeConsumption()
  16. {
  17. if ( $this->isChief )
  18. {
  19. $coffee = $coffeeConsumptionRate*1.5;
  20. }
  21. else
  22. {
  23. $coffee = $coffeeConsumptionRate;
  24. }
  25. return $coffee;
  26. }
  27.  
  28. public function getSalary()
  29. {
  30. switch( $this->rank )
  31. {
  32. case 1:
  33. $salary = $baseSalary;
  34. break;
  35. case 2:
  36. $salary = $baseSalary*1.25;
  37. break;
  38. case 3:
  39. $salary = $baseSalary*1.5;
  40. break;
  41. }
  42. if( $isChief )
  43. {
  44. $salary*= 1.5;
  45. }
  46. return $salary;
  47. }
  48.  
  49. abstract function getInfos();
  50. }
  51.  
  52. class Manager extends Worker
  53. {
  54. private $coffeeConsumptionRate = 20;
  55. private $baseSalary = 500;
  56. private $productionPerMount = 200;
  57. private $productionType = "страница отчёта";
  58.  
  59. public function getInfos()
  60. {
  61. echo "Это менеджер ";
  62. echo $this->rank;
  63. echo " уровня из департамента ";
  64. echo $this->department;
  65. if ($this->isChief)
  66. {
  67. echo "\nОн начальник этого департамента.";
  68. }
  69. echo "\nПолучает ";
  70. echo $this->getSalary();
  71. echo " единиц валюты в месяц\n";
  72. echo "Выпивает ";
  73. echo $this->getCoffeeConsumption();
  74. echo " литров кофе в месяц\n";
  75. }
  76. }
  77.  
  78. $a = new Manager( "торговый", 2, true );
  79. $a->getInfos();
Success #stdin #stdout #stderr 0.02s 52432KB
stdin
Standard input is empty
stdout
Это менеджер  уровня из департамента 
Получает  единиц валюты в месяц
Выпивает  литров кофе в месяц
stderr
PHP Notice:  Undefined property: Manager::$rank in /home/bkKJba/prog.php on line 63
PHP Notice:  Undefined property: Manager::$department in /home/bkKJba/prog.php on line 65
PHP Notice:  Undefined property: Manager::$isChief in /home/bkKJba/prog.php on line 66
PHP Notice:  Undefined variable: isChief in /home/bkKJba/prog.php on line 44
PHP Notice:  Undefined variable: salary in /home/bkKJba/prog.php on line 47
PHP Notice:  Undefined variable: coffeeConsumptionRate in /home/bkKJba/prog.php on line 24