3v4l.org

run code in 300+ PHP versions simultaneously
<?php header("Content-Type: text/plain; charset=utf-8"); class Departament { public $name; public $employees = []; public function __construct($name) { $this->name = $name; } public function getEmpolyees($position, $rank, $boss, $quantity) { For ($i=1; $i<=$quantity; $i++) { $this->employees[] = new $position($rank, $boss); } } public function countEmployees() //число сотрудников в департаменте { $countEmployees=0; foreach ($this->employees as $employee) { $countEmployees++; } return $countEmployees; } public function getSalaryDep() //суммарная зарплата работников { $countSalaryDep=0; foreach ($this->employees as $employee) { $countSalaryDep+=$employee->getSalary(); } return $countSalaryDep; } public function getCoffeeDep() //потребляемое кофе всеми сотрудниками депа { $countCoffee = 0; foreach ($this->employees as $employee) { $countCoffee+= $employee->getCoffee(); } return $countCoffee; } public function getPageDep() //Число страниц документов и отчетов, которые производит этот департамент { $countPage = 0; foreach ($this->employees as $employee) { $countPage+= $employee->getPage(); } return $countPage; } public function getAverageTugPerPage() //Посчитать средний расход тугриков на одну страницу { $average = $this->getPageDep() / $this->getSalaryDep(); return $average; } public function calculateall() //Произвести все расчеты и вывести на экран. { $countEmployees = 0; $salary = 0; $countCoffee = 0; $countPage = 0; $average = 0; echo "Название департамента: {$this->name}\n"; $countEmployees = $this->countEmployees(); echo "Кол-во сотрудников : {$countEmployees}\n"; $salary=round($this->getSalaryDep()); // echo "Зп по этому департаменту = {$salary}\n"; $countCoffee= $this->getCoffeeDep(); echo "Кол-во выпитого коффе = {$countCoffee}\n"; $countPage = $this->getPageDep(); echo "Всего страниц этого депа: {$countPage}\n"; $average = round($this->getAverageTugPerPage(),2); echo "Cредний расход тугриков на одну страницу {$average}\n\n\n"; } } abstract Class Employee { public $coffe; public $page; public $baseSalary; public $rank; public $boss = false; public $quantity; public function __construct($rank, $boss) { $this->rank = $rank; $this->boss = $boss; } public function getSalary() //Посчитать зарплату отдельного работника с учётом ранга. Возвращает зарплату. { $salary = $this->baseSalary; switch($this->rank) { case 1: $salary = $salary;//Ранг 1, зп по дефолту break; case 2: $salary = $salary + ($salary)*25/100; //Ранг 2, прибавляем к з/п 25% break; case 3: $salary = $salary + ($salary)*50/100;//Ранг 3, прибавляем к з/п 50% break; default: echo "Неверно задан ранг."; } If ($this->boss) $salary=$salary + ($salary)*50/100; //Босс, прибавляем к з/п 50%(+за ранг отдельно накидывается) return $salary; } public function getCoffee()//Сколько кофе выпили сотрудники. Босс пьёт в два раза больше. { $coffee=$this->coffee; If ($this->boss) $coffee=$this->coffee*2; return $coffee; } public function getPage() // Страницы одного сотрудника. Босс = 0; { $page=$this->page; If ($this->boss) $page=0; return $page; } } Class Manager extends Employee { public $coffee = 20; public $page = 200; public $baseSalary = 500; } Class Marketer extends Employee { public $coffee = 15; public $page = 150; public $baseSalary = 400; } Class Engineer extends Employee { public $coffee = 5; public $page = 50; public $baseSalary = 200; } Class Analyst extends Employee { public $coffee = 50; public $page = 5; public $baseSalary = 800; } $allDep = []; $sumDep = []; $allDep[]=$procurementDep = new Departament("Procurement"); //Позиция, Ранг, босс, кол-во $procurementDep->getEmpolyees("Manager", 1, false, 9);// 9 менеджеров 1 ранга. $procurementDep->getEmpolyees("Manager",2, false, 3);//3 менеджера 2 ранга; $procurementDep->getEmpolyees("Manager",3, false, 2);// 2 менеджера 3 ранга; $procurementDep->getEmpolyees("Marketer", 1, false, 2);//2 маркетолога 1 ранга $procurementDep->getEmpolyees("Manager",2, true, 1);// Босс 2 ранга ме. $procurementDep->calculateall(); $allDep[]=$salesDep = new Departament("Sales"); $salesDep->getEmpolyees("Manager", 1, false, 12);// 12 менеджеров 1 ранга. $salesDep->getEmpolyees("Marketer", 1, false, 6);//6 маркетолога 1 ранга $salesDep->getEmpolyees("Analyst", 1, false, 3);//3 аналитика 1 ранга $salesDep->getEmpolyees("Analyst", 2, false, 2);//2 аналитика 1 ранга $salesDep->getEmpolyees("Marketer", 2, true, 1);//1 маркетолога 2 ранга boss $salesDep->calculateall(); $allDep[]=$advertisingDep = new Departament("Advertising"); $advertisingDep->getEmpolyees("Marketer", 1, false, 15);//15 маркетолога 1 ранга $advertisingDep->getEmpolyees("Marketer", 2, false, 10);//10 маркетолога 2 ранга $advertisingDep->getEmpolyees("Manager", 1, false, 8);// 8 менеджеров 1 ранга. $advertisingDep->getEmpolyees("Engineer", 1, false, 2);//2 инженера 1 ранга $advertisingDep->getEmpolyees("Marketer", 3, true, 1);//1 маркетолога 3 ранга boss $advertisingDep->calculateall(); $allDep[]=$logisticsDep = new Departament("logistics"); $logisticsDep->getEmpolyees("Manager", 1, false, 13);// 13 менеджеров 1 ранга. $logisticsDep->getEmpolyees("Manager", 2, false, 5);// 5 менеджеров 2 ранга. $logisticsDep->getEmpolyees("Engineer", 1, false, 5);//5 инженера 1 ранга $logisticsDep->getEmpolyees("Manager", 1, true, 1);// 1 менеджеров 1 ранга. boss $logisticsDep->calculateall(); function getSumDep($allDep) //Посчитать в сумме зарплаты/кофе/страницы всех департаментов. { $sumDep = []; foreach ($allDep as $dep) { $sumDep['allDepSalary']+=$dep->getSalaryDep(); $sumDep['allDepCoffee']+=$dep->getCoffeeDep(); $sumDep['allDepPage']+=$dep->getPageDep(); } return $sumDep; } $sumDep=getSumDep($allDep); foreach ($sumDep as $value) { echo "$value\n"; } ?>

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.0130.00824.20
8.4.110.0150.00719.18
8.4.100.0120.00918.27
8.4.90.0120.00820.95
8.4.80.0050.00319.12
8.4.70.0050.00420.64
8.4.60.0080.01520.93
8.4.50.0090.00719.03
8.4.40.0130.00619.48
8.4.30.0100.00620.00
8.4.20.0040.00420.61
8.4.10.0050.00517.90
8.3.250.0120.00618.85
8.3.240.0120.00717.28
8.3.230.0130.00917.10
8.3.220.0090.00619.16
8.3.210.0040.00416.79
8.3.200.0040.00516.94
8.3.190.0090.00217.09
8.3.180.0130.00719.09
8.3.170.0130.00617.17
8.3.160.0100.01016.91
8.3.150.0030.00617.00
8.3.140.0090.00916.80
8.3.130.0040.00418.61
8.3.120.0060.01319.20
8.3.110.0050.00320.94
8.3.100.0060.00316.88
8.3.90.0000.00818.67
8.3.80.0000.00918.30
8.3.70.0080.00818.43
8.3.60.0060.00916.75
8.3.50.0100.01021.21
8.3.40.0100.01319.21
8.3.30.0110.00418.98
8.3.20.0080.00020.59
8.3.10.0060.00321.85
8.3.00.0090.00023.45
8.2.290.0130.00720.64
8.2.280.0080.01120.48
8.2.270.0080.00018.78
8.2.260.0030.00717.38
8.2.250.0040.00416.92
8.2.240.0170.00317.08
8.2.230.0090.00022.58
8.2.220.0030.00624.06
8.2.210.0080.00026.77
8.2.200.0060.00316.88
8.2.190.0070.01016.88
8.2.180.0090.00618.23
8.2.170.0070.00722.96
8.2.160.0090.00619.70
8.2.150.0080.00024.18
8.2.140.0040.00424.66
8.2.130.0040.00426.16
8.2.120.0040.00419.95
8.2.110.0130.00619.31
8.2.100.0060.00618.09
8.2.90.0060.00619.51
8.2.80.0060.00317.97
8.2.70.0050.00517.75
8.2.60.0030.00917.80
8.2.50.0050.00318.10
8.2.40.0000.00820.85
8.2.30.0090.00019.51
8.2.20.0070.00418.27
8.2.10.0040.00418.31
8.2.00.0040.00418.40
8.1.330.0130.00622.05
8.1.320.0170.01116.34
8.1.310.0150.00318.59
8.1.300.0090.00017.91
8.1.290.0070.00718.88
8.1.280.0140.00725.92
8.1.270.0050.00324.66
8.1.260.0080.00026.35
8.1.250.0030.00628.09
8.1.240.0080.00323.97
8.1.230.0080.00317.95
8.1.220.0040.00418.02
8.1.210.0130.00018.77
8.1.200.0040.00417.61
8.1.190.0040.00417.48
8.1.180.0030.00518.10
8.1.170.0030.00518.87
8.1.160.0080.00019.01
8.1.150.0060.00320.38
8.1.140.0030.00519.75
8.1.130.0060.00619.21
8.1.120.0030.00517.64
8.1.110.0040.00417.61
8.1.100.0060.00317.57
8.1.90.0040.00417.55
8.1.80.0100.00017.63
8.1.70.0000.00717.55
8.1.60.0000.00817.77
8.1.50.0090.00017.60
8.1.40.0040.00717.75
8.1.30.0080.00017.84
8.1.20.0030.00617.84
8.1.10.0060.00317.74
8.1.00.0060.00317.68
8.0.300.0040.00418.77
8.0.290.0040.00416.88
8.0.280.0040.00418.63
8.0.270.0080.00317.50
8.0.260.0030.00317.39
8.0.250.0000.00717.23
8.0.240.0060.00317.19
8.0.230.0000.00917.09
8.0.220.0050.00217.18
8.0.210.0000.00817.14
8.0.200.0040.00417.17
8.0.190.0030.00617.10
8.0.180.0040.00417.16
8.0.170.0000.00817.23
8.0.160.0040.00417.14
8.0.150.0030.00616.98
8.0.140.0080.00017.13
8.0.130.0030.00313.54
8.0.120.0090.00017.03
8.0.110.0000.00816.96
8.0.100.0080.00016.93
8.0.90.0070.00017.11
8.0.80.0040.01117.15
8.0.70.0000.00817.02
8.0.60.0040.00417.18
8.0.50.0000.00817.09
8.0.30.0130.00917.36
8.0.20.0130.01017.49
8.0.10.0000.00817.22
8.0.00.0040.01316.94
7.4.330.0050.00015.55
7.4.320.0060.00016.71
7.4.300.0030.00316.77
7.4.290.0060.00316.66
7.4.280.0040.00416.69
7.4.270.0070.00016.69
7.4.260.0040.00416.60
7.4.250.0040.00416.76
7.4.240.0070.00016.65
7.4.230.0040.00416.70
7.4.220.0100.01016.62
7.4.210.0060.01016.74
7.4.200.0040.00416.60
7.4.160.0050.01716.77
7.4.150.0060.01217.40
7.4.140.0120.01117.86
7.4.130.0070.01416.81
7.4.120.0110.01116.73
7.4.110.0060.01316.88
7.4.100.0100.01316.70
7.4.90.0140.00616.84
7.4.80.0120.01219.39
7.4.70.0070.01016.78
7.4.60.0120.00616.85
7.4.50.0040.01016.69
7.4.40.0040.01316.69
7.4.30.0110.00616.84
7.4.00.0080.00815.20
7.3.330.0080.00013.59
7.3.320.0000.00613.59
7.3.310.0000.00716.62
7.3.300.0000.00716.60
7.3.290.0040.01216.62
7.3.280.0080.01216.59
7.3.270.0060.01417.40
7.3.260.0100.01116.68
7.3.250.0110.00716.68
7.3.240.0120.00816.60
7.3.230.0090.00916.78
7.3.210.0150.00416.82
7.3.200.0030.01916.62
7.3.190.0100.00716.43
7.3.180.0100.00616.55
7.3.170.0080.00816.62
7.3.160.0110.00816.64
7.3.120.0070.01015.27
7.3.110.0040.01414.84
7.3.100.0070.00715.07
7.3.90.0090.00614.81
7.3.80.0070.00715.04
7.3.70.0000.01414.74
7.3.60.0090.00615.11
7.3.50.0030.00715.11
7.3.40.0080.00814.97
7.3.30.0000.01514.83
7.3.20.0070.01016.57
7.3.10.0160.00316.72
7.3.00.0150.00116.68
7.2.330.0090.01516.90
7.2.320.0090.01116.68
7.2.310.0150.00317.05
7.2.300.0120.00616.81
7.2.290.0080.01517.00
7.2.250.0110.00714.85
7.2.240.0030.01415.45
7.2.230.0080.00814.93
7.2.220.0140.00415.05
7.2.210.0060.00315.31
7.2.200.0090.00615.31
7.2.190.0000.01015.10
7.2.180.0000.01615.20
7.2.170.0080.00815.18
7.2.130.0100.00716.76
7.2.120.0150.00916.61
7.2.110.0070.01316.68
7.2.100.0190.00416.67
7.2.90.0150.00916.44
7.2.80.0160.00616.92
7.2.70.0240.00316.38
7.2.60.0130.00716.71
7.2.50.0200.00716.77
7.2.40.0120.00816.78
7.2.30.0230.00617.00
7.2.20.0090.00916.59
7.2.10.0150.00316.45
7.2.00.0050.01118.29
7.1.330.0030.01015.95
7.1.320.0000.01515.82
7.1.310.0070.00715.80
7.1.300.0040.01215.81
7.1.290.0100.00615.50
7.1.280.0000.01515.86
7.1.270.0060.01015.75
7.1.260.0030.01215.99
7.1.250.0140.00615.55
7.1.200.0070.00715.56
7.1.100.0060.00617.75
7.1.70.0040.00717.22
7.1.60.0100.01017.26
7.1.50.0040.01816.99
7.1.30.2070.05036.60
7.1.20.1570.05036.58
7.1.10.2270.07320.38
7.1.00.2770.06320.67
7.0.200.0100.01016.61
7.0.170.1400.06720.26
7.0.160.1530.06020.17
7.0.150.1800.07020.15
7.0.140.3270.06320.05
7.0.130.3070.08320.27
7.0.120.2270.06720.14
7.0.110.2600.06020.14
7.0.100.2600.05720.17
7.0.90.2400.05320.19
7.0.80.3230.07720.08
7.0.70.2870.07720.11
7.0.60.3670.06020.00
7.0.50.3000.05320.20
7.0.40.2230.06020.20
7.0.30.2700.04720.21
7.0.20.2700.06720.24
7.0.10.1900.06720.02
7.0.00.2370.05320.06

preferences:
30.06 ms | 403 KiB | 5 Q