3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?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"; }
based on VpJHI
Output for 5.6.0 - 5.6.30, hhvm-3.18.5 - 3.22.0, 7.0.0 - 7.3.0rc3