3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Employee { public $name; // имя-фамилия public $rate; // часовая ставка (сколько он получает тугриков за час работы) public $hours = array(); // массив, содержащий отработанные часы по неделям public $overtime = 0; public function __construct($name, $rate) { // задаем имя и часовую ставку $this->name = $name; $this->rate = $rate; } /** Считает общее число отработанных часов */ public function getNormalHours() { // Просто складываем значения часов в массиве return array_sum($this->hours); } public function getOvertimeHours() { return $this->overtime; } /** Считает зарплату */ public function getSalary() { // Получаем число отработанных часов $hours = $this->getNormalHours() - $this->overtime; // и умножаем на часовую ставку $salary = $hours * $this->rate + $this->overtime * $this->rate * 2; return $salary; } public function getShortName() { return preg_replace('/(?<=(?<=(?<=[а-яё])[ ])[А-ЯЁ])[а-яё]+/ui', ".", $this->name); } } function printTable ($employees) { // Ширина колонок $col1 = 30; $col2 = 8; $col3 = 10; $col4 = 8; $col5 = 8; $totalSelery = 0; $totalNormalHours = 0; $totalOvertimeHours = 0; // Заголовок таблицы echo padRight("Сотрудник", $col1) . padLeft("Часы", $col2) . padLeft("Овертайм", $col3) . padLeft("Ставка", $col4) . padLeft("З/п", $col5) . "\n\n"; // Сама таблица foreach ($employees as $employee) { echo padRight($employee->getShortName(), $col1) . padLeft($employee->getNormalHours(), $col2) . padLeft($employee->getOvertimeHours(), $col3) . padLeft($employee->rate, $col4) . padLeft($employee->getSalary(), $col5) . "\n"; $totalSelery += $employee->getSalary(); $totalNormalHours += $employee->getNormalHours(); $totalOvertimeHours += $employee->getOvertimeHours(); } echo padRight("Всего", $col1) . padLeft($totalNormalHours, $col2) . padLeft($totalOvertimeHours, $col3) . padLeft("", $col4) . padLeft($totalSelery, $col5); } function padLeft ($field, $col) { echo str_repeat(" ", $col - mb_strlen($field)).$field; } function padRight ($field, $col) { echo $field.str_repeat(" ", $col - mb_strlen($field)); } $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); $peter->overtime = 10; $employees = array(); $employees[] = $ivan; $employees[] = $peter; printTable($employees);

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.3.40.0130.00318.90
8.3.30.0110.00319.04
8.3.20.0000.00820.85
8.3.10.0090.00020.64
8.3.00.0030.00520.84
8.2.170.0120.00322.96
8.2.160.0030.01021.98
8.2.150.0040.00424.18
8.2.140.0080.00024.66
8.2.130.0040.00418.28
8.2.120.0030.00526.35
8.2.110.0030.00722.27
8.2.100.0000.01118.34
8.2.90.0000.00819.21
8.2.80.0040.00417.97
8.2.70.0030.00617.88
8.2.60.0040.00418.05
8.2.50.0000.00818.07
8.2.40.0040.00418.47
8.2.30.0020.00518.28
8.2.20.0040.00418.17
8.2.10.0080.00019.68
8.2.00.0040.00418.25
8.1.270.0040.00420.57
8.1.260.0090.00026.35
8.1.250.0000.00728.09
8.1.240.0040.00422.25
8.1.230.0080.00419.09
8.1.220.0040.00418.03
8.1.210.0080.00018.77
8.1.200.0030.00617.60
8.1.190.0000.00817.47
8.1.180.0080.00018.10
8.1.170.0000.00818.55
8.1.160.0040.00418.95
8.1.150.0030.00519.09
8.1.140.0040.00420.34
8.1.130.0030.00320.36
8.1.120.0000.00817.71
8.1.110.0030.00617.72
8.1.100.0030.00617.56
8.1.90.0050.00317.68
8.1.80.0000.00817.68
8.1.70.0080.00017.68
8.1.60.0060.00317.76
8.1.50.0040.00417.80
8.1.40.0030.00517.66
8.1.30.0030.00517.95
8.1.20.0030.00617.82
8.1.10.0030.00617.76
8.1.00.0000.00817.75
8.0.300.0080.00018.77
8.0.290.0000.00817.13
8.0.280.0000.00718.64
8.0.270.0040.00417.29
8.0.260.0000.00818.64
8.0.250.0000.00817.27
8.0.240.0030.00317.27
8.0.230.0000.00717.30
8.0.220.0070.00017.32
8.0.210.0000.00717.27
8.0.200.0090.00017.38
8.0.190.0050.00317.32
8.0.180.0060.00317.30
8.0.170.0000.00817.37
8.0.160.0030.00617.28
8.0.150.0040.00417.18
8.0.140.0000.00717.19
8.0.130.0070.00013.66
8.0.120.0040.00417.19
8.0.110.0040.00417.09
8.0.100.0000.00817.41
8.0.90.0000.00717.16
8.0.80.0070.01417.24
8.0.70.0050.00217.24
8.0.60.0040.00417.12
8.0.50.0080.00017.36
8.0.30.0130.00517.40
8.0.20.0120.00817.40
8.0.10.0000.00717.17
8.0.00.0090.00917.01
7.4.330.0000.00615.55
7.4.320.0000.00616.98
7.4.300.0000.00616.77
7.4.290.0050.00316.87
7.4.280.0080.00816.94
7.4.270.0000.00916.96
7.4.260.0040.00416.95
7.4.250.0000.00716.95
7.4.240.0040.00416.83
7.4.230.0000.00717.05
7.4.220.0050.00316.92
7.4.210.0100.00716.88
7.4.200.0000.00817.04
7.4.160.0090.00916.83
7.4.140.0130.00717.86
7.4.130.0000.01816.73
7.4.120.0150.00916.89
7.4.110.0120.00616.82
7.4.100.0070.01116.90
7.4.90.0060.01316.84
7.4.80.0060.01619.39
7.4.70.0100.00716.84
7.4.60.0000.01716.75
7.4.50.0100.00316.85
7.4.40.0130.00616.98
7.4.00.0030.01215.25
7.3.330.0050.00013.50
7.3.320.0030.00313.63
7.3.310.0040.00416.74
7.3.300.0070.00016.52
7.3.290.0030.00316.59
7.3.280.0050.01316.56
7.3.260.0110.00816.77
7.3.240.0150.00516.77
7.3.230.0090.00916.55
7.3.210.0060.01116.73
7.3.200.0110.00516.85
7.3.190.0090.00916.72
7.3.180.0070.01016.92
7.3.170.0150.00416.64
7.3.160.0090.00616.87
7.3.20.0090.00315.09
7.3.10.0380.01614.84
7.3.00.0490.01115.17
7.2.330.0110.00616.90
7.2.320.0060.01116.93
7.2.310.0100.00716.96
7.2.300.0090.00916.94
7.2.290.0090.01316.87
7.2.150.0390.00915.35
7.2.140.0130.00015.38
7.2.130.0380.00915.22
7.2.120.0600.00615.36
7.2.110.0420.01815.18
7.2.100.0500.00415.51
7.2.90.0240.01015.11
7.2.80.0980.00415.29
7.2.70.0420.01215.18
7.2.60.0530.00015.44
7.2.50.0550.00615.24
7.2.40.0140.01415.13
7.2.30.0280.00715.39
7.2.20.0330.00315.35
7.2.10.0540.01315.53
7.2.00.0520.00915.25
7.1.250.0730.01314.36

preferences:
60.19 ms | 400 KiB | 5 Q