3v4l.org

run code in 300+ PHP versions simultaneously
<?php define("ERROR_INVALID_NAME", "Ung&uuml;ltiger Name"); define("ERROR_INVALID_EMAIL_ADDRESS", "Ung&uuml;ltiges E-Mailformat"); define("ERROR_INVALID_STREET", "Ung&uuml;ltiger Strassenname"); define("ERROR_INVALID_POSTALCODE", "Ung&uuml;ltige Postleitzahl! Bitte nur Zahlen eingeben"); define("ERROR_INVALID_CITY", "Ung&uuml;ltige Stadt"); define("ERROR_INVALID_AMOUNT250", "Ung&uuml;ltige Menge bei 250g"); define("ERROR_INVALID_AMOUNT500", "Ung&uuml;ltige Menge bei 500g"); define("ERROR_INVALID_AMOUNT", "Die Gesamtmenge betr&auml;gt 0"); define("ERROR_INVALID_PRICE", "Ung&uuml;ltiger Preis"); define("ERROR_INVALID_DATUM", "Ung&uuml;ltiges Datum"); /** * Validator fuer die Eingabe des Kunden */ class Validator{ var $errorMessages; /** * Validiert die Eingabe. */ function validateInput($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g){ $this->validate($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g); return $this->isValid(); } /** * Validiert die Confirmation. */ function validateConfirmation($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g, $preis, $datum){ $this->validate($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g); // Menge gefuellt und numersich if($preis == ''){ array_push($this->errorMessages, ERROR_INVALID_PREIS); } // Menge gefuellt und numersich if($datum == ''){ array_push($this->errorMessages, ERROR_INVALID_DATUM); } return $this->isValid(); } /** * Validiert die Bestaetigungsparameter. */ function validate($name, $email, $strasse, $plz, $stadt, $menge250g, $menge500g){ $this->errorMessages = array(); // Name gefuellt if($name == ""){ array_push($this->errorMessages, ERROR_INVALID_NAME); } // Email Adresse korrekt if(!ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $email)){ array_push($this->errorMessages, ERROR_INVALID_EMAIL_ADDRESS); } // Strasse gefuellt if($strasse == ""){ array_push($this->errorMessages, ERROR_INVALID_STREET); } // PLZ gefuellt und numerisch if(!ereg("^[0-9-]", $plz)){ array_push($this->errorMessages, ERROR_INVALID_POSTALCODE); } // Stadt gefuellt if($stadt == ""){ array_push($this->errorMessages, ERROR_INVALID_CITY); } // Menge250g gefuellt und numersich if(!ereg("^[0-9-]", $menge250g)){ array_push($this->errorMessages, ERROR_INVALID_AMOUNT250); } // Menge500g gefuellt und numersich if(!ereg("^[0-9-]", $menge500g)){ array_push($this->errorMessages, ERROR_INVALID_AMOUNT500); } if ($menge250g == 0.0 and $menge500g == 0.0){ array_push($this->errorMessages, ERROR_INVALID_AMOUNT); } return $this->isValid(); } /** * Erzeugt eine Message fuer die letzte Validierung, */ function getErrorMessages(){ $msg = "<span style='color:red'>Fehler, Sie haben nicht alle Felder korrekt ausgef&uuml;llt:"; // Erzeugte Fehlermeldungen einsammeln foreach ($this->errorMessages as $value) { $msg .= "<br /> - " . $value; } $msg .= "</span><br /><br />"; unset($value); return $msg; } /** * Ueberprueft, ob Fehler bei der Validierung aufgetreten sind. */ function isValid(){ if (count($this->errorMessages) == 0){ return true; } return false; } } ?>

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.0200.00016.75
8.3.50.0120.00917.96
8.3.40.0040.01118.52
8.3.30.0110.00318.94
8.3.20.0040.00420.31
8.3.10.0050.00321.86
8.3.00.0080.00020.95
8.2.180.0070.01418.29
8.2.170.0080.00822.96
8.2.160.0100.00322.13
8.2.150.0040.00424.18
8.2.140.0080.00024.66
8.2.130.0040.00426.16
8.2.120.0050.00319.43
8.2.110.0030.00621.02
8.2.100.0040.00717.38
8.2.90.0050.00319.03
8.2.80.0080.00017.97
8.2.70.0040.00817.50
8.2.60.0040.00417.68
8.2.50.0040.00418.07
8.2.40.0040.00419.70
8.2.30.0040.00417.97
8.2.20.0000.00817.51
8.2.10.0030.00518.07
8.2.00.0080.00017.49
8.1.280.0100.01025.92
8.1.270.0080.00020.48
8.1.260.0050.00326.35
8.1.250.0040.00428.09
8.1.240.0090.00020.77
8.1.230.0040.00817.42
8.1.220.0030.00617.74
8.1.210.0040.00418.77
8.1.200.0050.00517.23
8.1.190.0000.00817.00
8.1.180.0050.00318.10
8.1.170.0080.00018.57
8.1.160.0030.00522.04
8.1.150.0080.00018.80
8.1.140.0040.00417.30
8.1.130.0030.00317.88
8.1.120.0030.00617.24
8.1.110.0040.00417.36
8.1.100.0050.00217.37
8.1.90.0060.00317.36
8.1.80.0040.00417.39
8.1.70.0000.00717.25
8.1.60.0030.00617.52
8.1.50.0000.00817.48
8.1.40.0030.00517.45
8.1.30.0080.00017.40
8.1.20.0080.00017.48
8.1.10.0040.00417.34
8.1.00.0000.00817.25
8.0.300.0060.00318.77
8.0.290.0040.00416.75
8.0.280.0000.00718.25
8.0.270.0000.00817.24
8.0.260.0070.00017.25
8.0.250.0000.00716.80
8.0.240.0040.00416.79
8.0.230.0040.00416.76
8.0.220.0070.00016.80
8.0.210.0030.00516.83
8.0.200.0030.00316.71
8.0.190.0000.00716.91
8.0.180.0070.00016.68
8.0.170.0090.00016.84
8.0.160.0070.00016.71
8.0.150.0070.00016.71
8.0.140.0040.00416.79
8.0.130.0030.00313.23
8.0.120.0000.00816.73
8.0.110.0080.00016.79
8.0.100.0050.00316.84
8.0.90.0070.00016.64
8.0.80.0080.00716.78
8.0.70.0000.00716.63
8.0.60.0050.00316.73
8.0.50.0060.00316.61
8.0.30.0140.01417.03
8.0.20.0130.01117.40
8.0.10.0040.00416.74
8.0.00.0140.00816.58
7.4.330.0000.00615.03
7.4.320.0000.00616.55
7.4.300.0030.00316.38
7.4.290.0040.00416.53
7.4.280.0070.00316.36
7.4.270.0030.00316.35
7.4.260.0000.00716.38
7.4.250.0080.00016.49
7.4.240.0020.00516.43
7.4.230.0030.00316.28
7.4.220.0120.00916.61
7.4.210.0090.00616.61
7.4.200.0070.00016.53
7.4.160.0120.00916.51
7.4.150.0090.00917.40
7.4.140.0050.01417.86
7.4.130.0080.00816.44
7.4.120.0080.01016.44
7.4.110.0100.01316.42
7.4.100.0030.01416.23
7.4.90.0190.00316.35
7.4.80.0070.01116.46
7.4.70.0120.00616.34
7.4.60.0090.00616.43
7.4.50.0030.00616.16
7.4.40.0100.00716.50
7.4.30.0180.00616.50
7.4.00.0060.00914.55
7.3.330.0030.00313.24
7.3.320.0120.00413.21
7.3.310.0030.00316.19
7.3.300.0000.00616.08
7.3.290.0050.01016.25
7.3.280.0090.00816.25
7.3.270.0120.00617.40
7.3.260.0120.00916.42
7.3.250.0230.01016.40
7.3.240.0140.00316.38
7.3.230.0100.00716.39
7.3.210.0060.01016.39
7.3.200.0130.01319.39
7.3.190.0040.01216.08
7.3.180.0060.00916.25
7.3.170.0120.00916.57
7.3.160.0070.01016.20
7.2.330.0090.00916.45
7.2.320.0100.00716.50
7.2.310.0030.01616.64
7.2.300.0060.01016.28
7.2.290.0120.01216.46
7.2.00.0070.00719.09
7.1.200.0070.00715.52
7.1.100.0050.00517.58
7.1.70.0070.01016.82
7.1.60.0000.01519.46
7.1.50.0070.01416.76
7.1.00.0030.07322.45
7.0.200.0000.00716.35
7.0.140.0030.07322.11
7.0.60.0070.07720.10
7.0.50.0130.05017.96
7.0.40.0030.05320.15
7.0.30.0230.05720.21
7.0.20.0230.06720.26
7.0.10.0000.08020.20
7.0.00.0070.07320.20
5.6.280.0130.06321.10
5.6.210.0070.08320.55
5.6.200.0130.04318.28
5.6.190.0070.05320.64
5.6.180.0530.07720.63
5.6.170.0170.04020.47
5.6.160.0100.04720.51
5.6.150.0070.08018.22
5.6.140.0070.08718.19
5.6.130.0070.04718.18
5.6.120.0030.08321.07
5.6.110.0170.07721.14
5.6.100.0070.08320.99
5.6.90.0100.07721.00
5.6.80.0030.08020.57
5.5.350.0270.02720.36
5.5.340.0070.07018.09
5.5.330.0000.05720.46
5.5.320.0070.08020.38
5.5.310.0400.07720.27
5.5.300.0000.07017.95
5.5.290.0170.05017.98
5.5.280.0270.06321.01
5.5.270.0100.04020.84
5.5.260.0130.05020.79
5.5.250.0130.08020.82
5.5.240.0070.03720.22
5.4.450.0770.07319.46
5.4.440.0800.07019.59
5.4.430.1130.05719.58
5.4.420.1070.04719.62
5.4.410.0930.07319.47
5.4.400.1030.07019.26
5.4.390.0170.05318.73
5.4.380.0200.05018.53
5.4.370.0130.05318.55
5.4.360.0100.06718.86
5.4.350.0170.05318.61
5.4.340.0170.05018.80
5.4.320.0230.05718.75
5.4.310.0200.04718.84
5.4.300.0100.05718.62
5.4.290.0170.05718.63
5.4.280.0270.04318.72
5.4.270.0100.06018.77
5.4.260.0270.04318.57
5.4.250.0100.06318.53
5.4.240.0170.05318.49
5.4.230.0170.05018.77
5.4.220.0170.06018.75
5.4.210.0200.05318.52
5.4.200.0130.05316.80
5.4.190.0170.05018.54
5.4.180.0070.07018.77
5.4.170.0070.06318.59
5.4.160.0170.05718.50
5.4.150.0030.06318.74
5.4.140.0100.05316.34
5.4.130.0100.06316.29
5.4.120.0130.05016.34
5.4.110.0200.06316.37
5.4.100.0230.06016.19
5.4.90.0230.04716.46
5.4.80.0170.06316.27
5.4.70.0070.05716.43
5.4.60.0170.06316.25
5.4.50.0170.06316.32
5.4.40.0070.05716.23
5.4.30.0100.05016.42
5.4.20.0100.06716.22
5.4.10.0100.05316.29
5.4.00.0130.04715.91
5.3.290.0230.04714.86
5.3.280.0130.05314.73
5.3.270.0200.05014.74
5.3.260.0200.05714.79
5.3.250.0070.06014.84
5.3.240.0100.05714.74
5.3.230.0030.06314.79
5.3.220.0170.05314.65
5.3.210.0170.06014.62
5.3.200.0200.07314.70
5.3.190.0300.07014.61
5.3.180.0400.06014.82
5.3.170.0200.05714.65
5.3.160.0100.06314.80
5.3.150.0170.05714.73
5.3.140.0200.07314.66
5.3.130.0230.04714.62
5.3.120.0200.07314.80
5.3.110.0230.05014.70
5.3.100.0130.05314.29
5.3.90.0170.05014.21
5.3.80.0130.05314.13
5.3.70.0130.05314.16
5.3.60.0200.05714.15
5.3.50.0270.05014.09
5.3.40.0170.06714.01
5.3.30.0130.04713.98
5.3.20.0070.05713.86
5.3.10.0130.05013.71
5.3.00.0130.05313.78
5.2.170.0170.05311.24
5.2.160.0030.05011.26
5.2.150.0130.05711.19
5.2.140.0070.04711.28
5.2.130.0200.03011.38
5.2.120.0200.03011.20
5.2.110.0170.03711.20
5.2.100.0130.04311.25
5.2.90.0100.04011.20
5.2.80.0170.04011.19
5.2.70.0270.04311.25
5.2.60.0370.04011.21
5.2.50.0100.05311.04
5.2.40.0070.04711.13
5.2.30.0100.04711.08
5.2.20.0100.04711.05
5.2.10.0000.05011.01
5.2.00.0030.04710.84
5.1.60.0100.03310.07
5.1.50.0170.02710.07
5.1.40.0100.03710.16
5.1.30.0170.03710.39
5.1.20.0070.05310.53
5.1.10.0100.04710.30
5.1.00.0100.04310.15
5.0.50.0000.0378.68
5.0.40.0030.0308.68
5.0.30.0030.0508.27
5.0.20.0030.0408.29
5.0.10.0130.0238.34
5.0.00.0070.0438.19
4.4.90.0030.0235.95
4.4.80.0030.0235.99
4.4.70.0030.0305.94
4.4.60.0000.0275.95
4.4.50.0030.0236.07
4.4.40.0030.0375.96
4.4.30.0030.0235.97
4.4.20.0000.0306.00
4.4.10.0030.0236.04
4.4.00.0100.0335.99
4.3.110.0030.0235.91
4.3.100.0030.0235.90
4.3.90.0000.0235.87
4.3.80.0000.0475.92
4.3.70.0000.0335.85
4.3.60.0100.0275.88
4.3.50.0030.0275.88
4.3.40.0070.0335.91
4.3.30.0030.0235.24
4.3.20.0030.0305.24
4.3.10.0070.0275.24
4.3.00.0300.02714.62

preferences:
78.45 ms | 400 KiB | 5 Q