3v4l.org

run code in 300+ PHP versions simultaneously
<?php header("Content-Type: text/plain; charset=utf-8"); //b_internal_encoding('utf-8'); class Departament { public function __construct($name) //создаём департамент { $this->name = $name; } public function countEmployees($employees) //число сотрудников в департаменте { $countEmployees=0; foreach ($employees as $employee) { $countEmployees+= $employee->quantity; } echo "Число сотрудников: {$countEmployees}\n\n\n"; } public function getSalaryAllEmployees($employees) //посчитать зарплату всех сотрудников этого департамента { $totalSalary=0; foreach ($employees as $employee) { $totalSalary+=$employee->getSalary($employee) * $employee->quantity; } echo "Общая Зарплата по этому департаменту:".round($totalSalary)."\n"; return $totalSalary; } public function getCoffeAll($employees) //расходы на кофе по этому департаменту { $countCoffe = 0; foreach ($employees as $employee) { $countCoffe+= $employee->getCoffe($employee) * $employee->quantity; } echo "Кол-во выпитого коффе = {$countCoffe}\n"; return $countCoffe; } public function getPageAll($employees) //Число страниц документов и отчетов, которые производит этот департамент { $countPage = 0; foreach ($employees as $employee) { $countPage+= $employee->page * $employee->quantity; } echo "Всего страниц этого депа: {$countPage}\n"; return $countPage; } public function getAll($object, $employees) { $this->getSalaryAllEmployees($employees); $this->getCoffeAll($employees); $this->getPageAll($employees); $this->countEmployees($employees); } } class EmployeeGroup { public $position; public $coffe; public $page; public $rank; public $boss = false; public $baseSalary; public $quantity; public function getSalary($employee) //Посчитать зарплату отдельного работника с учётом ранга. Возвращает работник->$baseSalary. { switch($employee->rank) { case 1: $employee->baseSalary;//Ранг 1, зп по дефолту break; case 2: $employee->baseSalary+=($employee->baseSalary)*25/100; //Ранг 2, прибавляем к з/п 25% break; case 3: $employee->baseSalary+=($employee->baseSalary)*50/100;//Ранг 3, прибавляем к з/п 50% break; default: echo "Error. Switch, class EmployeeGroup, неверно задан ранг."; } If ($employee->boss == true) { $employee->baseSalary+=($employee->baseSalary)*50/100;//Босс, прибавляем к з/п 50%(+за ранг отдельно накидывается) } return $employee->baseSalary; } public function getCoffe($employee) //Сколько кофе выпили сотрудники. Босс пьёт в два раза больше. { If ($employee->boss == true) { $employee->coffe*=2; return $employee->coffe; } else { return $employee->coffe; } } //Создаём сотрудника: профессия, ранг, босс(bool), кофе, страницы, оклад, название депортамента. public function __construct($position, $rank, $boss, $coffe, $page, $baseSalary, $quantity) { $this->position = $position; $this->rank = $rank; $this->boss = $boss; $this->coffe = $coffe; $this->page = $page; $this->baseSalary = $baseSalary; $this->quantity = $quantity; } } $procurement = new Departament("Закупки");// Создаём департамент ЗАКУПОК. //Создаём сотрудника: профессия, ранг, босс(bool), кофе, страницы, оклад, кол-во сотрудников этого типа.. $procurementEmp[] = new EmployeeGroup("Менеджер", 1, false, 20, 200, 500, 9); //9 сотрудников ме1 $procurementEmp[] = new EmployeeGroup("Менеджер", 2, false, 20, 200, 500, 3); //3 сотрудника ме2 $procurementEmp[] = new EmployeeGroup("Менеджер", 3, false, 20, 200, 500, 2); //2 сотрудника ме3 $procurementEmp[] = new EmployeeGroup("Маркетолог", 1, false, 15, 150, 400, 2); //2 сотрудника ма1 $procurementEmp[] = new EmployeeGroup("Менеджер", 2, true, 20, 0, 500, 1); //босс ме2; $procurement->getAll($procurement, $procurementEmp); //получить все данные. $sales = new Departament("Продажи");// Создаём департамент Продажи. $salesEmp[] = new EmployeeGroup("Менеджер", 1, false, 20, 200, 500, 12); //12 сотрудников ме1 $salesEmp[] = new EmployeeGroup("Маркетолог", 1, false, 15, 150, 400, 6); //6 сотрудника ма1 $salesEmp[] = new EmployeeGroup("Аналитик", 1, false, 50, 5, 800, 3); //3 сотрудника ан1 $salesEmp[] = new EmployeeGroup("Аналитик", 2, false, 50, 5, 800, 2); //2 сотрудника ан2 $salesEmp[] = new EmployeeGroup("Маркетолог", 2, true, 15, 0, 400, 1); //босс ма2; $sales->getAll($sales, $salesEmp); //получить все данные. $advertising = new Departament("Реклама");// Создаём департамент Рекламы. $advertisingEmp[] = new EmployeeGroup("Маркетолог", 1, false, 15, 150, 400, 12); //12 сотрудника ма1 $advertisingEmp[] = new EmployeeGroup("Маркетолог", 2, false, 15, 150, 400, 10); //10 сотрудника ма2 $advertisingEmp[] = new EmployeeGroup("Менеджер", 1, false, 20, 200, 500, 8); //8 сотрудников ме1 $advertisingEmp[] = new EmployeeGroup("Инженер", 1, false, 5, 50, 200, 2); //2 ин1 $advertisingEmp[] = new EmployeeGroup("Маркетолог", 3, true, 15, 0, 400, 1); //босс ма3; $advertising->getAll($advertising, $advertisingEmp); //получить все данные. $logistics = new Departament("Логистика");// Создаём департамент Рекламы. $logisticsEmp[] = new EmployeeGroup("Менеджер", 1, false, 20, 200, 500, 13); //13 сотрудников ме1 $logisticsEmp[] = new EmployeeGroup("Менеджер", 2, false, 20, 200, 500, 5); //5 сотрудников ме2 $logisticsEmp[] = new EmployeeGroup("Инженер", 1, false, 5, 50, 200, 5); //5 ин1 $logisticsEmp[] = new EmployeeGroup("Менеджер", 1, false, 20, 200, 500, 1); //босс ме1 $logistics->getAll($logistics, $logisticsEmp); //получить все данные. ?>

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.4.120.0140.00720.66
8.4.110.0080.00322.60
8.4.100.0050.00518.15
8.4.90.0060.00518.38
8.4.80.0050.00418.15
8.4.70.0080.01218.09
8.4.60.0060.00318.86
8.4.50.0070.01319.46
8.4.40.0040.00419.42
8.4.30.0070.01319.96
8.4.20.0110.00322.19
8.4.10.0030.00619.59
8.3.250.0110.00919.03
8.3.240.0130.00816.67
8.3.230.0070.00216.97
8.3.220.0080.00317.34
8.3.210.0020.00516.91
8.3.200.0040.00816.93
8.3.190.0050.00417.61
8.3.180.0110.00518.58
8.3.170.0070.01117.61
8.3.160.0080.00017.34
8.3.150.0130.00721.17
8.3.140.0090.00916.89
8.3.130.0070.00316.93
8.3.120.0040.00420.71
8.3.110.0000.00820.94
8.3.100.0100.00024.06
8.3.90.0040.00426.77
8.3.80.0090.00018.43
8.3.70.0030.01217.00
8.3.60.0120.00917.13
8.3.50.0110.01021.20
8.3.40.0110.00419.14
8.3.30.0210.00018.88
8.3.20.0050.00320.55
8.3.10.0000.00823.66
8.3.00.0080.00023.77
8.2.290.0110.00820.49
8.2.280.0120.00818.70
8.2.270.0100.01016.94
8.2.260.0070.00020.52
8.2.250.0100.00718.32
8.2.240.0030.00617.30
8.2.230.0060.00322.58
8.2.220.0060.00337.54
8.2.210.0050.00326.77
8.2.200.0040.00816.63
8.2.190.0130.01016.75
8.2.180.0100.01018.29
8.2.170.0120.00322.96
8.2.160.0100.00719.55
8.2.150.0060.00324.18
8.2.140.0040.01124.66
8.2.130.0020.00520.71
8.2.120.0060.00326.35
8.2.110.0070.00321.25
8.2.100.0040.00818.22
8.2.90.0000.00819.51
8.2.80.0040.00417.97
8.2.70.0040.00417.75
8.2.60.0000.00818.18
8.2.50.0040.00418.18
8.2.40.0000.00820.90
8.2.30.0030.00619.51
8.2.20.0040.00418.32
8.2.10.0030.00518.19
8.2.00.0040.00418.38
8.1.330.0100.00918.42
8.1.320.0060.00216.13
8.1.310.0000.01916.91
8.1.300.0090.00018.09
8.1.290.0070.00330.84
8.1.280.0070.01125.92
8.1.270.0050.00323.96
8.1.260.0000.00826.35
8.1.250.0080.00028.09
8.1.240.0060.00322.79
8.1.230.0040.00818.08
8.1.220.0030.00617.89
8.1.210.0040.00418.77
8.1.200.0040.00417.48
8.1.190.0040.00417.47
8.1.180.0000.00818.10
8.1.170.0030.00518.71
8.1.160.0070.00019.02
8.1.150.0040.00420.50
8.1.140.0040.00419.84
8.1.130.0030.00319.27
8.1.120.0000.00717.66
8.1.110.0070.00017.61
8.1.100.0040.00417.54
8.1.90.0040.00417.56
8.1.80.0030.00617.68
8.1.70.0000.00817.65
8.1.60.0050.00317.74
8.1.50.0040.00417.77
8.1.40.0080.00017.67
8.1.30.0000.00817.74
8.1.20.0040.00417.84
8.1.10.0000.00817.67
8.1.00.0030.00617.71
8.0.300.0070.00019.12
8.0.290.0040.00417.00
8.0.280.0040.00418.51
8.0.270.0050.00316.93
8.0.260.0000.00917.45
8.0.250.0090.00317.12
8.0.240.0030.00817.14
8.0.230.0000.00717.11
8.0.220.0030.00317.04
8.0.210.0000.00717.05
8.0.200.0060.00017.01
8.0.190.0020.00517.16
8.0.180.0040.00416.98
8.0.170.0000.00717.05
8.0.160.0000.00717.07
8.0.150.0000.01017.07
8.0.140.0050.00217.13
8.0.130.0030.00313.59
8.0.120.0000.00817.09
8.0.110.0070.00016.97
8.0.100.0070.00017.07
8.0.90.0000.00717.15
8.0.80.0030.01217.06
8.0.70.0040.00416.90
8.0.60.0070.00016.98
8.0.50.0040.00417.15
8.0.30.0100.01117.48
8.0.20.0120.01117.48
8.0.10.0040.00417.07
8.0.00.0040.01516.85
7.4.330.0030.00315.55
7.4.320.0030.00316.75
7.4.300.0000.00716.63
7.4.290.0050.00716.79
7.4.280.0060.00316.70
7.4.270.0030.00316.78
7.4.260.0070.00316.76
7.4.250.0040.00416.68
7.4.240.0040.00416.61
7.4.230.0000.00716.70
7.4.220.0090.01816.79
7.4.210.0030.01116.63
7.4.200.0040.00416.86
7.4.160.0120.00516.77
7.4.150.0160.00417.40
7.4.140.0130.00717.86
7.4.130.0100.01016.63
7.4.120.0080.01216.84
7.4.110.0120.00616.59
7.4.100.0120.00616.46
7.4.90.0070.01016.77
7.4.80.0150.00419.39
7.4.70.0120.01116.47
7.4.60.0080.00916.68
7.4.50.0060.01016.65
7.4.40.0070.01016.61
7.4.30.0090.00616.42
7.4.00.0040.01114.91
7.3.330.0040.00413.34
7.3.320.0030.00313.38
7.3.310.0000.00816.59
7.3.300.0030.00316.50
7.3.290.0000.00816.61
7.3.280.0080.01116.53
7.3.270.0130.01017.40
7.3.260.0100.00916.63
7.3.250.0140.00316.61
7.3.240.0100.00716.71
7.3.230.0120.00816.49
7.3.210.0090.00916.42
7.3.200.0160.00016.42
7.3.190.0070.01116.57
7.3.180.0090.00616.91
7.3.170.0140.00316.73
7.3.160.0080.00816.88
7.2.330.0090.00916.94
7.2.320.0060.01216.77
7.2.310.0070.01016.85
7.2.300.0100.01317.01
7.2.290.0060.01117.05
7.2.60.0030.00617.12
7.1.200.0070.00315.90
7.1.70.0030.00617.21
7.1.60.0070.00717.41
7.1.30.1570.06336.61
7.1.20.0870.06036.61
7.1.10.0570.07320.46
7.1.00.0530.05720.75
7.0.200.0030.01316.73
7.0.170.0900.08020.15
7.0.160.0630.08020.04
7.0.150.0800.06020.18
7.0.140.0400.06320.27
7.0.130.0400.06020.20
7.0.120.0330.06720.13
7.0.110.0470.06320.18
7.0.100.0770.05020.09
7.0.90.0570.04720.38
7.0.80.0600.06320.10
7.0.70.0530.05720.08
7.0.60.0470.07720.09
7.0.50.0530.06320.17
7.0.40.2200.06720.10
7.0.30.0630.07020.17
7.0.20.0600.05320.16
7.0.10.0500.06320.17
7.0.00.0530.05320.11

preferences:
122.91 ms | 403 KiB | 5 Q