fork(64) download
  1. <?php
  2.  
  3. // archive-ipq-co.narod.ru
  4.  
  5. class Employee
  6. {
  7. public $name; // имя-фамилия
  8. public $rate; // часовая ставка (сколько он получает тугриков за час работы)
  9. public $hours = array(); // массив, содержащий отработанные часы по неделям
  10.  
  11. public function __construct($name, $rate)
  12. {
  13. // задаем имя и часовую ставку
  14. $this->name = $name;
  15. $this->rate = $rate;
  16. }
  17.  
  18. /** Считает общее число отработанных часов */
  19. public function getTotalHoursWorked()
  20. {
  21. // Просто складываем значения часов в массиве
  22. return array_sum($this->hours);
  23. }
  24.  
  25. /** Считает зарплату */
  26. public function getSalary()
  27. {
  28. // Получаем число отработанных часов
  29. $hours = $this->getTotalHoursWorked();
  30. // и умножаем на часовую ставку
  31. $salary = $hours * $this->rate;
  32. return $salary;
  33. }
  34. }
  35.  
  36.  
  37. $ivan = new Employee("Иванов Иван", 10);
  38. // name и rate заданы через конструктор, потому осталось лишь написать часы
  39. $ivan->hours = array(40, 40, 40, 40); // Иван работает по 40 часов в неделю
  40.  
  41. $peter = new Employee("Петров Петр", 8);
  42. $peter->hours = array(40, 10, 40, 50); // Петр взял отгул и потому отработал меньше часов,
  43. // но в последнюю неделю решил поработать побольше
  44.  
  45. $employees = array($ivan, $peter);
  46.  
  47. foreach ($employees as $employee) {
  48. echo "Имя: {$employee->name}\n";
  49. echo "Ставка, тугриков в час: {$employee->rate}\n";
  50. echo "Отработал, часов: {$employee->getTotalHoursWorked()}\n";
  51. echo "Заработал, тугриков: {$employee->getSalary()}\n";
  52. }
  53.  
  54.  
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
Имя: Иванов Иван
Ставка, тугриков в час: 10
Отработал, часов: 160
Заработал, тугриков: 1600
Имя: Петров Петр
Ставка, тугриков в час: 8
Отработал, часов: 140
Заработал, тугриков: 1120