3v4l.org

run code in 300+ PHP versions simultaneously
<?php //implementácia rozhrania Mediator //metoda odoslat() je volaná zamestnancom a slúži k odoslaniu správ interface Mediator { public function send($message, AbstractEmployee $employee); } //definovanie rozhrania abstraktnej triedy AbstractEmployee //trieda obsahuje jedinečný atribút - identifikátor ID, metódu pre čítanie a zápis atribútu //metóda send($message) volá metódu send() sprostredkovateľa na odosielanie správ //metóda receive($message) prijíma správy a je definovaná pre každého potomka triedy //AbstractEmployee abstract class AbstractEmployee { protected $ID; protected $mediator; public function __construct ($ID, Mediator $mediator) { $this -> SetID($ID); $this -> SetMediator($mediator); } public function SetID($ID) { $this -> ID = $ID; } public function GetID() { return $this -> ID; } public function SetMediator(Mediator $mediator) { $this -> mediator = $mediator; } public function GetMediator() { return $this -> mediator ; } public function send($message) { $this -> mediator -> send($message, $this); } public abstract function receive($message); } //trieda Mediator – zabezpečuje registráciu zamestnancov, odosielanie a prijímanie správ class NewMediator implements Mediator { protected $employee = array(); public function registerEmployee (AbstractEmployee $employee) { $this -> employees[] = $employee; } public function send($message, AbstractEmployee $sender) { foreach ($this -> employees as $employee) { if($employee !== $sender) { $employee ->receive($message); } } } } //potomok triedy AbstractEmployee – trieda Employee //metódou receive($message) sa volá sprostredkovateľ, ktorému sa odovzdá posielaná správa class Employee extends AbstractEmployee { public function receive($message) { printf("Prijatie správy: \n", $this -> GetID, $message); } } //testovací script $mediator = new NewMediator(); $employee1 = new Employee('Zamestnanec 1', $mediator); $employee2 = new Employee('Zamestnanec 2', $mediator); $employee3 = new Employee('Zamestnanec 3', $mediator); $employee3 = new Employee('Zamestnanec 4', $mediator); $mediator -> registerEmployee($employee1); $mediator -> registerEmployee($employee2); $mediator -> registerEmployee($employee3); $mediator -> registerEmployee($employee4); $employee3 -> send('Správa zaslaná od ZAM3'); $employee1 -> send('Správa prijatá od ZAM1'); ?>

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.60.0110.00716.88
8.3.50.0150.00018.05
8.3.40.0120.00318.68
8.3.30.0070.00718.83
8.3.20.0040.00420.12
8.3.10.0080.00023.52
8.3.00.0080.00019.50
8.2.180.0090.00918.54
8.2.170.0070.01122.96
8.2.160.0070.00720.43
8.2.150.0040.00424.18
8.2.140.0080.00024.66
8.2.130.0050.00317.75
8.2.120.0070.00026.35
8.2.110.0060.00322.20
8.2.100.0120.00018.05
8.2.90.0000.00819.17
8.2.80.0060.00317.97
8.2.70.0040.00417.75
8.2.60.0060.00318.05
8.2.50.0000.00818.07
8.2.40.0030.00719.45
8.2.30.0040.00420.64
8.2.20.0080.00317.88
8.2.10.0070.00018.01
8.2.00.0000.00718.19
8.1.280.0000.01425.92
8.1.270.0090.00023.91
8.1.260.0050.00328.09
8.1.250.0000.00828.09
8.1.240.0090.00020.79
8.1.230.0040.00719.56
8.1.220.0000.00817.74
8.1.210.0000.00818.77
8.1.200.0030.00717.36
8.1.190.0070.00417.38
8.1.180.0040.00418.10
8.1.170.0000.00818.71
8.1.160.0030.00521.97
8.1.150.0000.00818.95
8.1.140.0030.00519.47
8.1.130.0050.00217.72
8.1.120.0040.00417.50
8.1.110.0000.00817.42
8.1.100.0080.00017.38
8.1.90.0040.00417.51
8.1.80.0030.00417.47
8.1.70.0040.00417.35
8.1.60.0040.00417.49
8.1.50.0030.00517.60
8.1.40.0090.00317.47
8.1.30.0000.00817.66
8.1.20.0000.00817.49
8.1.10.0000.00717.66
8.1.00.0030.00617.38
8.0.300.0040.00418.77
8.0.290.0000.00916.75
8.0.280.0000.00718.32
8.0.270.0000.00716.77
8.0.260.0040.00417.16
8.0.250.0000.00716.93
8.0.240.0000.00917.06
8.0.230.0000.00717.04
8.0.220.0070.00016.86
8.0.210.0080.00016.98
8.0.200.0040.00416.96
8.0.190.0050.00317.07
8.0.180.0030.00517.02
8.0.170.0040.00416.89
8.0.160.0040.00416.94
8.0.150.0030.00316.94
8.0.140.0070.00016.82
8.0.130.0030.00313.42
8.0.120.0040.00416.95
8.0.110.0040.00416.80
8.0.100.0040.00416.84
8.0.90.0040.00416.97
8.0.80.0160.00316.96
8.0.70.0030.00517.04
8.0.60.0050.00317.00
8.0.50.0060.00316.87
8.0.30.0130.00717.26
8.0.20.0090.01017.40
8.0.10.0000.00716.88
8.0.00.0140.00516.78
7.4.330.0050.00016.79
7.4.320.0000.00616.55
7.4.300.0060.00016.45
7.4.290.0020.00516.56
7.4.280.0080.00416.52
7.4.270.0040.00416.38
7.4.260.0040.00416.43
7.4.250.0040.00416.64
7.4.240.0050.00216.54
7.4.230.0000.00716.36
7.4.220.0070.01316.59
7.4.210.0140.00716.66
7.4.200.0050.00316.52
7.4.160.0110.00516.59
7.4.150.0070.01017.40
7.4.140.0130.01117.86
7.4.130.0110.00616.64
7.4.120.0120.00916.70
7.4.110.0130.01016.53
7.4.100.0040.01616.57
7.4.90.0140.00516.57
7.4.80.0130.00419.39
7.4.70.0100.00616.49
7.4.60.0030.01516.61
7.4.50.0030.01316.38
7.4.40.0100.00616.54
7.4.30.0150.00716.34
7.4.00.0100.00415.02
7.3.330.0000.00713.35
7.3.320.0030.00313.35
7.3.310.0000.00716.40
7.3.300.0040.00416.27
7.3.290.0040.01316.38
7.3.280.0110.00816.43
7.3.270.0060.01317.40
7.3.260.0070.01016.41
7.3.250.0100.00716.41
7.3.240.0140.00816.50
7.3.230.0130.00316.50
7.3.210.0100.01016.59
7.3.200.0050.01116.46
7.3.190.0100.00716.43
7.3.180.0030.01316.39
7.3.170.0080.00816.38
7.3.160.0040.01116.46
7.3.120.0120.00614.74
7.3.110.0070.01015.10
7.3.100.0030.01414.92
7.3.90.0070.00314.88
7.3.80.0030.01014.65
7.3.70.0070.00715.04
7.3.60.0040.01114.84
7.3.50.0060.00815.06
7.3.40.0030.01015.00
7.3.30.0100.00314.70
7.3.20.0050.00516.63
7.3.10.0030.01016.47
7.3.00.0100.00316.52
7.2.330.0110.00716.53
7.2.320.0130.00616.47
7.2.310.0090.01016.57
7.2.300.0090.00916.79
7.2.290.0150.00316.55
7.2.250.0060.01115.28
7.2.240.0000.01615.05
7.2.230.0030.01414.89
7.2.220.0160.00015.21
7.2.210.0030.01115.16
7.2.200.0060.01314.78
7.2.190.0070.00715.05
7.2.180.0030.01214.97
7.2.170.0100.00715.14
7.2.60.0060.00616.84
7.2.00.0060.00619.14
7.1.330.0120.00415.68
7.1.320.0070.01115.82
7.1.310.0030.00616.06
7.1.300.0030.01015.93
7.1.290.0090.00015.73
7.1.280.0090.00615.96
7.1.270.0030.01215.82
7.1.260.0000.01415.71
7.1.200.0070.00315.52
7.1.100.0060.00618.07
7.1.70.0060.00617.27
7.1.60.0140.01119.48
7.1.50.0090.01217.05
7.1.00.0070.07322.55
7.0.200.0100.01014.94
7.0.60.0200.07019.96
7.0.50.0030.08317.93
7.0.40.0070.04319.96
7.0.30.0270.06720.26
7.0.20.0130.05020.07
7.0.10.0100.06020.33
7.0.00.0070.07020.23
5.6.210.0030.04020.59
5.6.200.0070.05318.14
5.6.190.0100.08720.67
5.6.180.0200.05720.58
5.6.170.0200.05720.55
5.6.160.0100.08020.71
5.6.150.0030.05718.21
5.6.140.0030.04018.13
5.6.130.0130.05318.23
5.6.120.0000.06021.07
5.6.110.0100.06021.11
5.6.100.0100.04321.01
5.6.90.0230.05320.99
5.6.80.0030.07020.54
5.5.350.4370.04020.46
5.5.340.0030.08318.05
5.5.330.0200.06720.42
5.5.320.0030.08720.35
5.5.310.0370.05720.37
5.5.300.0000.04317.95
5.5.290.0000.06017.98
5.5.280.0130.03720.70
5.5.270.0030.08020.86
5.5.260.0000.04320.78
5.5.250.0100.07720.63
5.5.240.0300.07020.29

preferences:
45.46 ms | 400 KiB | 5 Q