3v4l.org

run code in 300+ PHP versions simultaneously
<?php restore_error_handler(); // funzione di gestione dell'errore function myErrorHandler ($errno, $errstr, $errfile, $errline) { switch ($errno) { case FATAL: echo "<b>FATAL</b> [$errno] $errstr<br>\n"; echo " Fatal error in line ".$errline." of file ".$errfile; echo ", PHP ".PHP_VERSION." (".PHP_OS.")<br>\n"; echo "Aborting...<br>\n"; @exit(); break; case ERROR: echo "<b>ERROR</b> [$errno] $errstr<br>\n"; break; case WARNING: echo "<b>WARNING</b> [$errno] $errstr<br>\n"; break; default: echo "Unkown error type: [$errno] $errstr<br>\n"; break; } } // funzione di prova del gestore di errore function scale_by_log ($vect, $scale) { if ( !is_numeric($scale) || $scale <= 0 ) trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale", FATAL); if (!is_array($vect)) { trigger_error("Incorrect input vector, array of values expected", ERROR); return null; } for ($i=0; $i<count($vect); $i++) { if (!is_numeric($vect[$i])) trigger_error("Value at position $i is not a number, using 0 (zero)", WARNING); $temp[$i] = log($scale) * $vect[$i]; } return $temp; } // configura il gestore dell'errore definito dall'utente $old_error_handler = set_error_handler("myErrorHandler"); // attiva alcuni errori, definendo prima un array misto con elementi non numerici echo "vector a\n"; $a = array(2,3,"foo",5.5,43.3,21.11); print_r($a); // genera il secondo array, generando un avviso echo "----\nvector b - a warning (b = log(PI) * a)\n"; $b = scale_by_log($a, M_PI); print_r($b); // questo è il problema, passiamo una stringa al posto di un array echo "----\nvector c - an error\n"; $c = scale_by_log("not array",2.3); var_dump($c); // errore critico, il log di zero o di un numero negativo non è definito echo "----\nvector d - fatal error\n"; $d = scale_by_log($a, -2.5); ?>

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.0130.00318.81
8.3.50.0060.01322.11
8.3.40.0170.00719.09
8.3.30.0160.00619.29
8.3.20.0090.00020.55
8.3.10.0180.00022.17
8.3.00.0110.00722.55
8.2.180.0230.00016.88
8.2.170.0100.00722.96
8.2.160.0170.00021.27
8.2.150.0060.00324.18
8.2.140.0090.00024.66
8.2.130.0080.00026.16
8.2.120.0000.00817.88
8.2.110.0070.00322.27
8.2.100.0120.00019.82
8.2.90.0000.00919.46
8.2.80.0050.00317.97
8.2.70.0030.00617.88
8.2.60.0030.00518.29
8.2.50.0040.00418.07
8.2.40.0050.00318.47
8.2.30.0000.00818.20
8.2.20.0000.00817.98
8.2.10.0040.00417.93
8.2.00.0040.00417.93
8.1.280.0110.01125.92
8.1.270.0000.00822.31
8.1.260.0050.00326.35
8.1.250.0000.00828.09
8.1.240.0060.00324.02
8.1.230.0110.00019.27
8.1.220.0000.00818.03
8.1.210.0040.00418.77
8.1.200.0000.01017.60
8.1.190.0000.00817.79
8.1.180.0090.00019.02
8.1.170.0030.00618.95
8.1.160.0000.00722.13
8.1.150.0000.00818.83
8.1.140.0050.00217.61
8.1.130.0030.00320.21
8.1.120.0000.00717.56
8.1.110.0060.00317.61
8.1.100.0050.00217.57
8.1.90.0040.00417.55
8.1.80.0000.00717.58
8.1.70.0040.00417.62
8.1.60.0000.00917.74
8.1.50.0040.00417.64
8.1.40.0080.00017.73
8.1.30.0040.00417.86
8.1.20.0000.00817.86
8.1.10.0080.00017.71
8.1.00.0000.00817.71
8.0.300.0040.00418.77
8.0.290.0060.00317.40
8.0.280.0000.00718.59
8.0.270.0050.00217.00
8.0.260.0030.00318.79
8.0.250.0040.00417.20
8.0.240.0040.00417.12
8.0.230.0030.00617.17
8.0.220.0030.00317.15
8.0.210.0000.00717.05
8.0.200.0070.00017.22
8.0.190.0000.00817.22
8.0.180.0000.00717.20
8.0.170.0080.00017.12
8.0.160.0000.00717.03
8.0.150.0030.00317.17
8.0.140.0000.00717.10
8.0.130.0070.00013.48
8.0.120.0000.00917.11
8.0.110.0000.00817.04
8.0.100.0000.00817.00
8.0.90.0040.00417.20
8.0.80.0060.01316.96
8.0.70.0050.00217.05
8.0.60.0050.00217.01
8.0.50.0030.00516.98
8.0.30.0090.01117.23
8.0.20.0100.01217.40
8.0.10.0040.00417.32
8.0.00.0080.01116.84
7.4.330.0000.00515.39
7.4.320.0060.00016.72
7.4.300.0000.00716.84
7.4.290.0030.00316.75
7.4.280.0000.00716.81
7.4.270.0070.00016.80
7.4.260.0000.00716.74
7.4.250.0060.00316.84
7.4.240.0050.00216.73
7.4.230.0070.00016.55
7.4.220.0070.01016.69
7.4.210.0050.01016.76
7.4.200.0000.00716.84
7.4.190.0000.00716.82
7.4.160.0060.01116.62
7.4.150.0110.01117.40
7.4.140.0120.00717.86
7.4.130.0140.00516.71
7.4.120.0120.00816.68
7.4.110.0060.01216.54
7.4.100.0100.00716.91
7.4.90.0060.01316.51
7.4.80.0100.00719.39
7.4.70.0110.00716.76
7.4.60.0090.01116.46
7.4.50.0060.00316.71
7.4.40.0120.00322.77
7.4.30.0100.00716.55
7.4.00.0030.01015.11
7.3.330.0060.00013.52
7.3.320.0060.00013.61
7.3.310.0070.00016.52
7.3.300.0050.00316.71
7.3.290.0100.01116.55
7.3.280.0130.00516.55
7.3.270.0080.00917.40
7.3.260.0080.01216.69
7.3.250.0090.01316.53
7.3.240.0100.01016.74
7.3.230.0070.01116.82
7.3.210.0100.00716.67
7.3.200.0120.00619.39
7.3.190.0180.00016.63
7.3.180.0110.00716.58
7.3.170.0120.01216.59
7.3.160.0120.00916.66
7.3.120.0000.01115.35
7.2.330.0130.00416.55
7.2.320.0100.00916.94
7.2.310.0080.00816.59
7.2.300.0080.00816.58
7.2.290.0030.01316.96
7.2.60.0080.00817.45
7.2.00.0030.01319.74
7.1.200.0080.00415.93
7.1.100.0000.01418.20
7.1.70.0040.00417.45
7.1.60.0100.01619.82
7.1.50.0130.01017.01
7.1.00.0030.07722.89
7.0.200.0000.00717.01
7.0.140.0070.07322.45
7.0.60.0400.06320.47
7.0.50.0100.06318.35
7.0.40.0170.08320.56
7.0.30.0300.05320.43
7.0.20.0300.05320.54
7.0.10.0100.06320.42
7.0.00.0030.08320.39
5.6.280.0030.07321.54
5.6.210.0100.08321.04
5.6.200.0030.04018.49
5.6.190.0100.05720.99
5.6.180.0300.05720.65
5.6.170.0330.06720.99
5.6.160.0130.08320.96
5.6.150.0030.07018.50
5.6.140.0130.08018.52
5.6.130.0130.05018.49
5.6.120.0070.08021.47
5.6.110.0030.04321.38
5.6.100.0100.08721.46
5.6.90.0070.04721.46
5.6.80.0070.08020.90
5.5.350.2500.04320.79
5.5.340.0100.05318.33
5.5.330.0100.06720.61
5.5.320.0300.03720.59
5.5.310.0370.07720.59
5.5.300.0130.03318.36
5.5.290.0100.07018.30
5.5.280.0070.03721.28
5.5.270.0130.07721.28
5.5.260.0030.08721.20
5.5.250.0070.03721.02
5.5.240.0000.07320.57
5.4.450.3930.03719.88
5.4.440.0030.04019.87
5.4.430.1630.06319.86
5.4.420.4400.04019.89
5.4.410.3930.05019.56
5.4.400.3370.03719.41
5.4.390.3530.03719.36
5.4.380.4370.04719.54
5.4.370.3670.03719.52
5.4.360.3670.03719.23
5.4.350.3430.03719.43
5.4.340.3600.04019.51
5.4.320.3830.03719.45
5.4.310.4230.03719.41
5.4.300.3900.03319.52
5.4.290.3870.04019.24
5.4.280.4200.04319.36
5.4.270.4100.03019.33
5.4.260.3870.03019.45
5.4.250.4300.03019.24
5.4.240.0030.04019.41
5.4.230.0030.05719.39
5.4.220.3570.04319.53
5.4.210.3700.03719.57
5.4.200.3770.04319.42
5.4.190.3730.03719.48
5.4.180.3730.03719.22
5.4.170.3770.04319.25
5.4.160.4800.03719.23
5.4.150.3630.04319.41
5.4.140.0070.03716.84
5.4.130.0030.03716.76
5.4.120.4230.03716.70
5.4.110.4270.03316.88
5.4.100.3530.04016.86
5.4.90.3800.03716.88
5.4.80.3570.03016.90
5.4.70.3530.03716.92
5.4.60.3830.03716.85
5.4.50.3770.03316.60
5.4.40.3670.03316.89
5.4.30.3730.03716.82
5.4.20.3830.02716.84
5.4.10.3830.03316.82
5.4.00.3770.03716.30
5.3.290.4100.03715.06
5.3.280.3770.03314.91
5.3.270.3730.03314.91
5.3.260.3900.03315.07
5.3.250.3300.03014.87
5.3.240.0000.05715.05
5.3.230.3100.03314.96
5.3.220.4530.04015.04
5.3.210.4530.03714.96
5.3.200.3630.04014.97
5.3.190.3530.04014.88
5.3.180.3630.03714.89
5.3.170.3770.03314.89
5.3.160.3530.04014.84
5.3.150.3770.04014.88
5.3.140.3570.04314.91
5.3.130.3770.03714.98
5.3.120.3830.04014.88
5.3.110.3400.03314.98
5.3.100.3570.03714.30
5.3.90.3670.03314.41
5.3.80.3700.03714.44
5.3.70.3700.03314.31
5.3.60.3800.03314.37
5.3.50.3700.04314.34
5.3.40.3870.03314.41
5.3.30.3970.04014.29
5.3.20.3530.03314.17
5.3.10.3670.04014.03
5.3.00.4400.03713.95
5.2.170.3000.03311.48
5.2.160.3400.02311.53
5.2.150.3470.03311.54
5.2.140.3270.03311.58
5.2.130.3200.03011.53
5.2.120.3370.03011.39
5.2.110.3430.03311.58
5.2.100.3630.03011.45
5.2.90.3800.03011.57
5.2.80.3830.02311.37
5.2.70.3500.03011.53
5.2.60.3970.04011.55
5.2.50.3300.03011.41
5.2.40.2600.03311.32
5.2.30.2830.03711.36
5.2.20.2700.02711.34
5.2.10.2430.02711.32
5.2.00.2800.03011.04
5.1.60.2600.03010.30
5.1.50.2800.02010.31
5.1.40.2830.02310.34
5.1.30.2570.02710.66
5.1.20.2570.02310.76
5.1.10.2330.03010.55
5.1.00.2400.02710.38
5.0.50.1470.0138.88
5.0.40.1470.0178.88
5.0.30.1530.0338.63
5.0.20.1070.0238.52
5.0.10.1400.0178.48
5.0.00.0930.0308.52
4.4.90.1700.0178.12
4.4.80.1630.0178.12
4.4.70.1300.0178.12
4.4.60.1500.0178.12
4.4.50.1170.0178.12
4.4.40.1230.0238.12
4.4.30.1300.0178.12
4.4.20.1430.0178.12
4.4.10.1500.0178.12
4.4.00.1230.0278.12
4.3.110.1600.0208.12
4.3.100.1270.0178.12
4.3.90.0530.0138.12
4.3.80.1270.0278.12
4.3.70.0570.0178.12
4.3.60.1230.0138.12
4.3.50.0870.0178.12
4.3.40.0970.0278.12
4.3.30.0600.0178.12
4.3.20.0570.0178.12
4.3.10.0600.0178.12
4.3.00.0700.0208.12

preferences:
48.81 ms | 400 KiB | 5 Q