3v4l.org

run code in 300+ PHP versions simultaneously
<?php trait iaSplSubject { protected $iaSubjectTag = ''; protected $iaSubjectEvent = ''; protected $iaObserverQueue = []; public function get_iaSubjectTag() {return $this->iaSubjectTag;} public function set_iaSubjectTag($subjectTag) {$this->iaSubjectTag = $subjectTag;} public function get_iaSubjectEvent() {return $this->iaSubjectEvent;} public function set_iaSubjectEvent($subjectEvent) {$this->iaSubjectEvent->iaSubjectEvent;} public function attach(SplObserver $SplObserver) { $this->iaObserverQueue[spl_object_hash($SplObserver)] = [ count($this->iaObserverQueue), $SplObserver]; if(method_exists($SplObserver, 'get_priority')) { uasort($this->iaObserverQueue, array($this, 'iaObserverQueueCmp')); } } protected function iaObserverQueueCmp($a, $b) { if(method_exists($a[1], 'get_priority') && method_exists($b[1], 'get_priority') && $a[1]->get_priority() != $b[1]->get_priority()) { return $a->get_priority() - $b->get_priority(); } return $a[0] - $b[0]; } public function detach(SplObserver $SplObserver) { unset($this->iaObserverQueue[spl_object_hash($SplObserver)]); } public function notifyEvent($subjectEvent) { $this->set_iaSubjectEvent($subjectEvent); $this->notify(); $this->iaSubjectEvent = ''; } public function notify() { foreach($this->iaObserverQueue as $notify) { $notify[1]->update($this); } } } trait iaSplObserver { protected $iaSplObserverPriority = 1000; public function set_iaSplObserverPriority($priority) {$this->iaSplObserverPriority = $priority;} public function get_iaSplObserverPriority() {return $this->iaSplObserverPriority;} public function iaSplSubject_attach(SplSubject $SplSubject, $priority = 1000) { $this->set_iaSplObserverPriority($priority); $SplSubject->attach($this); } public function iaSplSubject_getTag(SplSubject $SplSubject) { return method_exists($SplSubject,'get_iaSubjectTag') ? $SplSubject->get_iaSubjectTag() : ''; } public function iaSplSubject_getEvent(SplSubject $SplSubject) { return method_exists($SplSubject,'get_iaSubjectEvent') ? $SplSubject->get_iaSubjectEvent() : ''; } } class veo implements SplObserver { use iaSplObserver; private $rata=1; public function dime() {echo "dice ".$this->rata;} public function update(SplSubject $SplSubject) { // $tag = $this->SplSubject_getTag(SplSubject $SplSubject); // $event = $this->$SplSubject->get_iaSubjectEvent(); } } class aviso implements SplSubject { use iaSplSubject; } $t = new veo(); $t->dime(); $a = new aviso();

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.0120.00316.75
8.3.50.0130.00918.36
8.3.40.0070.01118.67
8.3.30.0060.01318.70
8.3.20.0040.00421.90
8.3.10.0000.00821.73
8.3.00.0090.00019.18
8.2.180.0030.01216.75
8.2.170.0150.00022.96
8.2.160.0100.00722.09
8.2.150.0050.00324.18
8.2.140.0050.00324.66
8.2.130.0050.00319.21
8.2.120.0040.00426.35
8.2.110.0030.00622.24
8.2.100.0060.00617.91
8.2.90.0000.00919.03
8.2.80.0030.00517.97
8.2.70.0080.00017.80
8.2.60.0000.01017.48
8.2.50.0030.00718.22
8.2.40.0040.00420.60
8.2.30.0040.00419.45
8.2.20.0100.00018.16
8.2.10.0060.00317.60
8.2.00.0000.00818.13
8.1.280.0040.01125.92
8.1.270.0030.00623.98
8.1.260.0080.00026.35
8.1.250.0040.00428.09
8.1.240.0090.00022.10
8.1.230.0000.01017.58
8.1.220.0080.00017.78
8.1.210.0060.00318.77
8.1.200.0040.00417.35
8.1.190.0030.00617.22
8.1.180.0070.00018.10
8.1.170.0050.00319.04
8.1.160.0070.00018.95
8.1.150.0000.00719.02
8.1.140.0030.00517.75
8.1.130.0030.00520.22
8.1.120.0030.00617.53
8.1.110.0040.00417.39
8.1.100.0030.00617.52
8.1.90.0070.00017.41
8.1.80.0000.00917.39
8.1.70.0030.00317.55
8.1.60.0060.00617.53
8.1.50.0050.00317.46
8.1.40.0080.00017.46
8.1.30.0080.00017.61
8.1.20.0040.00417.50
8.1.10.0000.00817.61
8.1.00.0080.00417.55
8.0.300.0040.00419.92
8.0.290.0060.00316.88
8.0.280.0070.00018.45
8.0.270.0000.00717.23
8.0.260.0000.00716.92
8.0.250.0000.01016.99
8.0.240.0070.00016.88
8.0.230.0030.00317.02
8.0.220.0000.00716.96
8.0.210.0040.00416.96
8.0.200.0000.00717.04
8.0.190.0050.00216.86
8.0.180.0000.00716.99
8.0.170.0050.00316.89
8.0.160.0050.00216.91
8.0.150.0050.00316.85
8.0.140.0040.00416.80
8.0.130.0040.00413.41
8.0.120.0000.00816.86
8.0.110.0070.00017.00
8.0.100.0080.00016.75
8.0.90.0050.00216.98
8.0.80.0140.00716.98
8.0.70.0040.00416.78
8.0.60.0000.00816.96
8.0.50.0000.00716.80
8.0.30.0090.00916.96
8.0.20.0090.00917.40
8.0.10.0040.00416.95
8.0.00.0090.01016.84
7.4.330.0060.00015.55
7.4.320.0030.00316.62
7.4.300.0030.00316.56
7.4.290.0070.00016.68
7.4.280.0040.00416.63
7.4.270.0070.00016.56
7.4.260.0070.00016.53
7.4.250.0080.00016.60
7.4.240.0040.00416.67
7.4.230.0070.00016.65
7.4.220.0050.00316.67
7.4.210.0130.00316.58
7.4.200.0070.00016.65
7.4.160.0050.01016.54
7.4.140.0090.00917.86
7.4.130.0070.01116.60
7.4.120.0120.00816.56
7.4.110.0070.01016.67
7.4.100.0100.00716.54
7.4.90.0170.00616.50
7.4.80.0040.01619.39
7.4.70.0000.01716.52
7.4.60.0030.01316.46
7.4.50.0070.01116.59
7.4.40.0100.00716.62
7.4.00.0060.00915.20
7.3.330.0060.00013.29
7.3.320.0000.00713.34
7.3.310.0000.00716.33
7.3.300.0040.00416.14
7.3.290.0000.00816.16
7.3.280.0100.00916.36
7.3.260.0090.00916.52
7.3.240.0070.01016.41
7.3.230.0120.00616.32
7.3.210.0070.01016.41
7.3.200.0100.00716.61
7.3.190.0030.01316.62
7.3.180.0130.00716.59
7.3.170.0120.00616.38
7.3.160.0030.01316.25
7.3.10.0070.00716.50
7.3.00.0030.00916.54
7.2.330.0090.00916.93
7.2.320.0090.00916.79
7.2.310.0140.00716.80
7.2.300.0090.00916.41
7.2.290.0130.00316.48
7.2.130.0070.00716.73
7.2.120.0090.00316.63
7.2.110.0080.00416.97
7.2.100.0000.01217.03
7.2.90.0100.00316.70
7.2.80.0030.01216.78
7.2.70.0060.00616.91
7.2.60.0040.00817.00
7.2.50.0040.00816.95
7.2.40.0090.00316.79
7.2.30.0100.01317.42
7.2.20.0120.01017.40
7.2.10.0150.00817.44
7.2.00.0070.01517.45
7.1.250.0070.00415.75
7.1.200.0040.01115.43
7.1.150.0150.01716.86
7.1.140.0170.01016.54
7.1.130.0200.01316.85
7.1.120.0210.01216.90
7.1.110.0200.01316.39
7.1.100.0140.01016.35
7.1.90.0140.01415.92
7.1.80.0160.01816.26
7.1.70.0090.01615.19
7.1.60.0360.01333.42
7.1.50.0330.01533.00
7.1.40.0300.01532.78
7.1.30.0330.01632.52
7.1.20.0330.01332.61
7.1.10.0160.01314.84
7.1.00.0150.00714.72

preferences:
57.85 ms | 401 KiB | 5 Q