3v4l.org

run code in 300+ PHP versions simultaneously
<?php // archive-ipq-co.narod.ru error_reporting(-1); class Employee { public $name; // имя-фамилия public $rate; // часовая ставка (сколько он получает тугриков за час работы) public $hours = array(); // массив, содержащий отработанные часы по неделям public function __construct($name, $rate) { // задаем имя и часовую ставку $this->name = $name; $this->rate = $rate; } /** Считает общее число отработанных часов */ public function getTotalHoursWorked() { // Просто складываем значения часов в массиве return array_sum($this->hours); } /** Считает зарплату */ public function getSalary() { // Получаем число отработанных часов $hours = $this->getTotalHoursWorked(); // и умножаем на часовую ставку $salary = $hours * $this->rate; return $salary; } } $ivan = new Employee("Иванов Иван", 10); // name и rate заданы через конструктор, потому осталось лишь написать часы $ivan->hours = array(40, 40, 40, 40); // Иван работает по 40 часов в неделю $peter = new Employee("Петров Петр", 8); $peter->hours = array(40, 10, 40, 50); // Петр взял отгул и потому отработал меньше часов, // но в последнюю неделю решил поработать побольше $employees = array($ivan, $peter); // foreach ($employees as $employee) { // echo "Имя: {$employee->name}\n"; // echo "Ставка, тугриков в час: {$employee->rate}\n"; // echo "Отработал, часов: {$employee->getTotalHoursWorked()}\n"; // echo "Заработал, тугриков: {$employee->getSalary()}\n"; // } // Ширина колонок $col1 = 30; $col2 = 8; $col3 = 8; $col4 = 8; function padRight($string, $length){ } function padLeft($string, $length){ } // Заголовок таблицы echo padRight("Сотрудник", $col1) . padLeft("Часы", $col2) . padLeft("Ставка", $col3) . padLeft("З/п", $col4) . "\n\n"; // Сама таблица foreach ($employees as $employee) { echo padRight($employee->name, $col1) . padLeft($employee->getTotalHoursWorked(), $col2) . padLeft($employee->rate, $col3) . padLeft($employee->getSalary(), $col4) . "\n"; }
Output for 5.6.38, 7.0.0 - 7.0.32, 7.1.0 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4

preferences:
184.03 ms | 403 KiB | 212 Q