3v4l.org

run code in 300+ PHP versions simultaneously
<?php class A { function __construct() { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } function __destruct() { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function dir_closedir() { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function dir_opendir($path, $options) { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function dir_readdir() { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function dir_rewinddir() { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function mkdir($path, $mode, $options) { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function rename($path_from, $path_to) { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function rmdir($path, $options) { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function stream_cast($cast_as) { var_dump(__FUNCTION__); var_dump(func_get_args()); return false; } public function stream_close() { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function stream_eof() { var_dump(__FUNCTION__); var_dump(func_get_args()); return false; } public function stream_flush() { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function stream_lock($operation) { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function stream_metadata($path, $option, $value) { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function stream_open($path, $mode, $options, &$opened_path) { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function stream_read($count) { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function stream_seek($offset, $whence = SEEK_SET) { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function stream_set_option($option, $arg1, $arg2) { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function stream_stat() { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function stream_tell() { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function stream_truncate($new_size) { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function stream_write($data) { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function unlink($path) { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } public function url_stat($path, $flags) { var_dump(__FUNCTION__); var_dump(func_get_args()); return true; } } stream_wrapper_register("abc", "A") or die("Failed to register protocol"); // $fp = fopen("abc://b", "rw"); // feof($fp); // fread($fp, 1); /** We don't have anything like stream_cast $r = array($fp); $w = null; $e = null; stream_select($r, $w, $e, 0); */ // fflush($fp); // flock($fp, LOCK_SH); /** No virtual method yet stream_set_blocking($fp, 1); */ // fseek($fp, 123); /** No virtual method yet fstat($fp); */ // ftruncate($fp, 456); // fwrite($fp, 789); // chmod('abc://c', 0123); // unlink('abc://d'); // is_file('abc://e'); // is_link('abc://f'); print("*** *** ***\n"); touch('abc://g'); print("*** *** ***\n"); touch('abc://g', 15); print("*** *** ***\n"); touch('abc://g', 15, 25); print("*** *** ***\n"); // mkdir('abc://dir', 0755, true); // rmdir('abc://dir'); // rename('abc://dir', 'abc://dir2');

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.00416.88
8.3.50.0110.00822.92
8.3.40.0180.00318.73
8.3.30.0110.00418.92
8.3.20.0050.00320.34
8.3.10.0040.00423.66
8.3.00.0060.00319.51
8.2.180.0090.00618.10
8.2.170.0150.00022.96
8.2.160.0110.00320.39
8.2.150.0040.00424.18
8.2.140.0000.00824.66
8.2.130.0110.00326.16
8.2.120.0000.00820.95
8.2.110.0050.00520.52
8.2.100.0040.00817.84
8.2.90.0040.00419.14
8.2.80.0040.00417.97
8.2.70.0060.00317.38
8.2.60.0000.00817.80
8.2.50.0040.00418.07
8.2.40.0030.00918.07
8.2.30.0060.00318.13
8.2.20.0020.00517.63
8.2.10.0000.00818.01
8.2.00.0080.00017.77
8.1.280.0150.00025.92
8.1.270.0030.00623.71
8.1.260.0040.00426.35
8.1.250.0070.00028.09
8.1.240.0030.00623.81
8.1.230.0040.00823.98
8.1.220.0050.00517.74
8.1.210.0050.00318.77
8.1.200.0060.00317.11
8.1.190.0000.00817.38
8.1.180.0030.00518.10
8.1.170.0000.00918.66
8.1.160.0040.00421.96
8.1.150.0050.00218.77
8.1.140.0040.00417.46
8.1.130.0000.00817.91
8.1.120.0050.00217.29
8.1.110.0040.00417.49
8.1.100.0040.00417.33
8.1.90.0040.00417.42
8.1.80.0000.00717.50
8.1.70.0070.00317.41
8.1.60.0040.00417.62
8.1.50.0030.00517.54
8.1.40.0070.00317.40
8.1.30.0030.00617.59
8.1.20.0080.00017.54
8.1.10.0040.00417.53
8.1.00.0050.00217.43
8.0.300.0040.00418.77
8.0.290.0000.00716.75
8.0.280.0030.00518.34
8.0.270.0080.00317.11
8.0.260.0030.00317.15
8.0.250.0000.00716.88
8.0.240.0000.00816.91
8.0.230.0000.00716.90
8.0.220.0030.00316.79
8.0.210.0020.00516.89
8.0.200.0070.00016.98
8.0.190.0020.00516.95
8.0.180.0040.00416.78
8.0.170.0030.00516.86
8.0.160.0050.00316.87
8.0.150.0080.00016.76
8.0.140.0000.00716.75
8.0.130.0060.00013.31
8.0.120.0000.00816.87
8.0.110.0000.00716.91
8.0.100.0030.00516.72
8.0.90.0020.00516.74
8.0.80.0080.01216.81
8.0.70.0040.00416.72
8.0.60.0000.00716.88
8.0.50.0080.00016.77
8.0.30.0090.01116.95
8.0.20.0120.01117.40
8.0.10.0000.00816.99
8.0.00.0140.00416.81
7.4.330.0020.00215.08
7.4.320.0000.00616.63
7.4.300.0000.00616.38
7.4.290.0030.00316.59
7.4.280.0030.00516.57
7.4.270.0040.00416.39
7.4.260.0000.00716.46
7.4.250.0090.00016.57
7.4.240.0020.00616.54
7.4.230.0070.00016.38
7.4.220.0150.00316.61
7.4.210.0100.00516.68
7.4.200.0070.00016.55
7.4.160.0060.01016.46
7.4.150.0110.01017.40
7.4.140.0130.00517.86
7.4.130.0080.01016.59
7.4.120.0120.00616.49
7.4.110.0140.00316.47
7.4.100.0110.00716.45
7.4.90.0080.00816.67
7.4.80.0070.01119.39
7.4.70.0130.00616.38
7.4.60.0180.00616.50
7.4.50.0060.00316.51
7.4.40.0130.00916.45
7.4.30.0080.00816.43
7.4.00.0090.00614.81
7.3.330.0050.00213.30
7.3.320.0000.00713.27
7.3.310.0050.00316.26
7.3.300.0030.00316.25
7.3.290.0000.01416.25
7.3.280.0120.00316.26
7.3.270.0100.01017.40
7.3.260.0100.01016.34
7.3.250.0110.00616.35
7.3.240.0130.00616.26
7.3.230.0160.00416.39
7.3.210.0120.00916.58
7.3.200.0080.01119.39
7.3.190.0180.00416.36
7.3.180.0120.01216.39
7.3.170.0060.00916.53
7.3.160.0110.00716.32
7.2.330.0130.00616.72
7.2.320.0120.00616.68
7.2.310.0080.01216.58
7.2.300.0130.00616.65
7.2.290.0090.00916.65
7.2.60.0060.00916.79
7.2.50.0170.00716.84
7.1.200.0060.00615.80
7.1.70.0020.00516.96
7.1.60.0140.00719.46
7.1.50.0160.00616.86
7.1.00.0000.07722.34
7.0.200.0120.00016.50
7.0.140.0030.07322.05
7.0.110.0570.08720.00
7.0.100.0630.05320.14
7.0.90.0630.05020.12
7.0.80.0730.07020.09
7.0.70.0700.06319.93
7.0.60.0670.08019.95
7.0.50.0570.07020.45
7.0.40.0030.08720.16
7.0.30.0130.07320.07
7.0.20.0070.06020.04
7.0.10.0000.07020.04
7.0.00.0100.07720.18
5.6.280.0000.08021.05
5.6.250.0100.07720.78
5.6.240.0100.07320.70
5.6.230.0230.06320.67
5.6.220.0130.07320.63
5.6.210.0130.07720.76
5.6.200.0230.06721.11
5.6.190.0130.07021.14
5.6.180.0130.07720.98
5.6.170.0000.06321.23
5.6.160.0070.07721.22
5.6.150.0030.05021.18
5.6.140.0100.03721.30
5.6.130.0100.08020.96
5.6.120.0000.09021.11
5.6.110.0100.07721.16
5.6.100.0030.08321.29
5.6.90.0070.08720.96
5.6.80.0070.08720.43
5.6.70.0170.06320.46
5.6.60.0070.08020.65
5.6.50.0100.07720.66
5.6.40.0030.04320.58
5.6.30.0000.09020.61
5.6.20.0100.08020.66
5.6.10.0030.08720.34
5.6.00.0070.08320.52
5.5.380.0170.07720.57
5.5.370.0170.07720.57
5.5.360.0100.07320.31
5.5.350.0000.08720.55
5.5.340.0170.06720.84
5.5.330.0170.06320.98
5.5.320.0100.07720.82
5.5.310.0170.07020.73
5.5.300.0030.08720.81
5.5.290.0100.08320.98
5.5.280.0070.08020.87
5.5.270.0200.07321.00
5.5.260.0070.08021.04
5.5.250.0070.07720.66
5.5.240.0000.08020.18
5.5.230.0070.08320.38
5.5.220.0230.06720.25
5.5.210.0070.08020.30
5.5.200.0070.06720.17
5.5.190.0030.08320.42
5.5.180.0030.08320.16
5.5.160.0170.07020.34
5.5.150.0100.07720.24
5.5.140.0230.06320.19
5.5.130.0030.08720.19
5.5.120.0000.08720.19
5.5.110.0070.07720.34
5.5.100.0100.07020.18
5.5.90.0170.06720.18
5.5.80.0070.05020.05
5.5.70.0070.07720.19
5.5.60.0100.04020.16
5.5.50.0100.07320.04
5.5.40.0100.04320.29
5.5.30.0200.07020.06
5.5.20.0230.05020.06
5.5.10.0170.06720.07
5.5.00.0200.07020.18
5.4.450.0070.06719.52
5.4.440.0030.08719.38
5.4.430.0100.07719.32
5.4.420.0130.07719.35
5.4.410.0030.04719.20
5.4.400.0030.07319.34
5.4.390.0070.08318.95
5.4.380.0100.07019.09
5.4.370.0100.07319.00
5.4.360.0030.08319.00
5.4.350.0070.08019.09
5.4.340.0100.07719.02
5.4.320.0030.08018.95
5.4.310.0070.06319.02
5.4.300.0030.06319.33
5.4.290.0100.07019.14
5.4.280.0170.07019.09
5.4.270.0000.07718.95
5.4.260.0100.07319.24
5.4.250.0070.07718.99
5.4.240.0030.08019.08
5.4.230.0100.07018.99
5.4.220.0130.07019.00
5.4.210.0170.06719.16
5.4.200.0030.08019.01
5.4.190.0070.06318.94
5.4.180.0070.07319.00
5.4.170.0070.07718.98
5.4.160.0030.07319.01
5.4.150.0130.07018.98
5.4.140.0130.06316.61
5.4.130.0070.06316.36
5.4.120.0170.06316.52
5.4.110.0030.05316.56
5.4.100.0070.06716.51
5.4.90.0030.06716.54
5.4.80.0100.07316.31
5.4.70.0070.07716.31
5.4.60.0100.07016.50
5.4.50.0000.07716.42
5.4.40.0100.07016.53
5.4.30.0070.06316.50
5.4.20.0100.06716.34
5.4.10.0030.07316.48
5.4.00.0100.03715.91

preferences:
44.89 ms | 401 KiB | 5 Q