fork download
  1. <?php
  2.  
  3.  
  4. class Employee
  5. {
  6. public $name; // имя-фамилия
  7. public $rate; // часовая ставка (сколько он получает тугриков за час работы)
  8. public $hours = array(); // массив, содержащий отработанные часы по неделям
  9.  
  10. public function __construct($name, $rate)
  11. {
  12. // задаем имя и часовую ставку
  13. $this->name = $name;
  14. $this->rate = $rate;
  15. }
  16.  
  17. /** Считает общее число отработанных часов */
  18. public function getTotalHoursWorked()
  19. {
  20. // Просто складываем значения часов в массиве
  21. return array_sum($this->hours);
  22. }
  23.  
  24. /** Считает зарплату */
  25. public function getSalary()
  26. {
  27. // Получаем число отработанных часов
  28. $hours = $this->getTotalHoursWorked();
  29. // и умножаем на часовую ставку
  30. $salary = $hours * $this->rate;
  31. return $salary;
  32. }
  33. }
  34.  
  35.  
  36. $ivan = new Employee("Иванов Иван", 10);
  37. // name и rate заданы через конструктор, потому осталось лишь написать часы
  38. $ivan->hours = array(40, 40, 40, 40); // Иван работает по 40 часов в неделю
  39.  
  40. $peter = new Employee("Петров Петр", 8);
  41. $peter->hours = array(40, 10, 40, 50); // Петр взял отгул и потому отработал меньше часов,
  42. // но в последнюю неделю решил поработать побольше
  43.  
  44. $employees = array($ivan, $peter);
  45.  
  46. //ширина колонок
  47. $col1 = 30;
  48. $col2 = 8;
  49. $col3 = 8;
  50. $col4 = 8;
  51.  
  52. //заголовок таблицы
  53.  
  54. echo str_pad("Employee", 30) .
  55. padLeft("Hours", $col2) .
  56. padLeft("rate", $col3) .
  57. padLeft("payday", $col4) . "\n\n";
  58.  
  59. foreach ($employees as $employee) {
  60. echo "Имя: {$employee->name}\n";
  61. echo "Ставка, тугриков в час: {$employee->rate}\n";
  62. echo "Отработал, часов: {$employee->getTotalHoursWorked()}\n";
  63. echo "Заработал, тугриков: {$employee->getSalary()}\n";
  64. }
  65.  
Runtime error #stdin #stdout #stderr 0.02s 23392KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
PHP Fatal error:  Uncaught Error: Call to undefined function padLeft() in /home/6IbtUF/prog.php:56
Stack trace:
#0 {main}
  thrown in /home/6IbtUF/prog.php on line 56