3v4l.org

run code in 300+ PHP versions simultaneously
<?php // класс хранилища данных, реализующий интерфейс Iterator class Registry implements Iterator { // массив, в котором хранятся настройки private $options = []; // возвращает текущий элемент public function current() { return current($this -> options); } // возвращает ключ текущего элемента public function key() { return key($this -> options); } // передвигаемся вперед на один элемент public function next() { next($this -> options); } // возвращает указатель на начало массива // фактически мы начинаем считать заново с нуля public function rewind() { reset($this -> options); } // проверяет, достигли ли мы конца массива public function valid() { return current($this -> options) !== false; } // метод для добавления настройки в хранилище public function set($option, $value) { $this -> options[$option] = $value; return $this; } // метод для получения настройки из хранилища public function get($option) { return $this -> options[$option]; } } // создали объект $reg = new Registry(); // добавили настройки $reg -> set("DS",DIRECTORY_SEPARATOR) -> set("APP_HOME", '.') -> set("AUTO_RELOAD",true); // и прошлись по настройкам. // обратите внимание - никаких массивов, только объект $reg foreach ( $reg as $option => $value ) { echo $option, " = ", $value, PHP_EOL; }

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.0150.00316.50
8.3.50.0120.00618.02
8.3.40.0150.00018.92
8.3.30.0150.00718.79
8.3.20.0040.00424.18
8.3.10.0080.00024.66
8.3.00.0090.00026.16
8.2.180.0040.01125.92
8.2.170.0100.00718.79
8.2.160.0070.00722.96
8.2.150.0000.00725.66
8.2.140.0060.00324.66
8.2.130.0060.00326.16
8.2.120.0040.00419.95
8.2.110.0090.00020.43
8.2.100.0070.00417.91
8.2.90.0030.00517.63
8.2.80.0040.00418.77
8.2.70.0060.00317.63
8.2.60.0070.00017.93
8.2.50.0040.00418.05
8.2.40.0040.00419.88
8.2.30.0050.00318.12
8.2.20.0000.00718.12
8.2.10.0000.00719.34
8.2.00.0040.00419.36
8.1.280.0070.00725.92
8.1.270.0040.00423.99
8.1.260.0050.00326.35
8.1.250.0040.00428.09
8.1.240.0060.00323.77
8.1.230.0110.00020.86
8.1.220.0050.00317.74
8.1.210.0000.00818.77
8.1.200.0030.00617.22
8.1.190.0040.00417.35
8.1.180.0080.00019.01
8.1.170.0040.00418.56
8.1.160.0000.00718.91
8.1.150.0070.00018.93
8.1.140.0050.00518.93
8.1.130.0030.00320.12
8.1.120.0030.00517.35
8.1.110.0040.00417.39
8.1.100.0050.00317.40
8.1.90.0070.00017.46
8.1.80.0090.00017.33
8.1.70.0000.00717.52
8.1.60.0040.00417.61
8.1.50.0080.00017.56
8.1.40.0040.00417.52
8.1.30.0000.00817.61
8.1.20.0040.00417.61
8.1.10.0090.00317.58
8.1.00.0000.00817.53
8.0.300.0000.00718.77
8.0.290.0040.00416.63
8.0.280.0030.00518.36
8.0.270.0030.00318.03
8.0.260.0000.00618.38
8.0.250.0030.00316.93
8.0.240.0040.00416.97
8.0.230.0070.00016.89
8.0.220.0070.00016.76
8.0.210.0000.00716.90
8.0.200.0050.00217.04
8.0.190.0000.00816.93
8.0.180.0000.00816.80
8.0.170.0060.00316.79
8.0.160.0000.00716.78
8.0.150.0040.00416.90
8.0.140.0030.00316.81
8.0.130.0000.00613.30
8.0.120.0060.00316.73
8.0.110.0080.00016.68
8.0.100.0020.00516.86
8.0.90.0040.00416.73
8.0.80.0050.01216.82
8.0.70.0000.00716.92
8.0.60.0040.00416.74
8.0.50.0000.00816.77
8.0.30.0110.01116.82
8.0.20.0000.01516.89
8.0.10.0040.01217.03
8.0.00.0040.01116.99
7.4.330.0040.00015.55
7.4.320.0030.00316.43
7.4.300.0060.00316.55
7.4.290.0040.00416.53
7.4.280.0080.00016.40
7.4.270.0000.00616.64
7.4.260.0000.00513.25
7.4.250.0000.00816.45
7.4.240.0000.00716.59
7.4.230.0070.00016.45
7.4.220.0030.00416.49
7.4.210.0040.01016.61
7.4.200.0000.00816.31
7.4.160.0130.00716.45
7.4.150.0070.00716.48
7.4.140.0100.00316.35
7.4.130.0070.00716.38
7.4.120.0140.00016.50
7.4.110.0070.00716.36
7.4.100.0030.01016.48
7.4.90.0120.00316.57
7.4.80.0070.00716.39
7.4.70.0070.00716.56
7.4.60.0070.00716.45
7.4.50.0070.00616.44
7.4.40.0100.01016.41
7.4.30.0040.01016.45
7.4.20.0110.00316.51
7.4.10.0030.01016.54
7.4.00.0000.01416.54
7.3.330.0080.00016.39
7.3.320.0030.00313.35
7.3.310.0000.00816.37
7.3.300.0030.00316.26
7.3.290.0050.01016.37
7.3.280.0140.00616.40
7.3.270.0100.00316.26
7.3.260.0100.00316.28
7.3.250.0100.00316.36
7.3.240.0060.00616.37
7.3.230.0130.00016.36
7.3.220.0030.01016.29
7.3.210.0030.01016.29
7.3.200.0000.01316.25
7.3.190.0060.00616.30
7.3.180.0090.00916.30
7.3.170.0130.00016.21
7.3.160.0130.00716.31
7.3.150.0060.00616.25
7.3.140.0070.00716.31
7.3.130.0110.00416.36
7.3.120.0080.00616.25
7.3.110.0100.00316.25
7.3.100.0060.00816.23
7.3.90.0070.00716.52
7.3.80.0060.00616.34
7.3.70.0060.00716.36
7.3.60.0060.00616.36
7.3.50.0070.00716.45
7.3.40.0000.01316.49
7.3.30.0100.00316.45
7.3.20.0640.00316.42
7.3.10.0180.00016.36
7.3.00.0070.00716.46

preferences:
59.88 ms | 401 KiB | 5 Q