3v4l.org

run code in 300+ PHP versions simultaneously
<?php $RANDOM_SALT = rand(); function saltedHash($pass) { global $RANDOM_SALT; return hash("sha512", $pass) + $RANDOM_SALT; } $USERS = [ "user1" => saltedHash("password1"), "user2" => saltedHash("hunter2"), "user3" => saltedHash("fN.4A_zKEe]33p!"), "user4" => saltedHash("xXgjan3a58qzX3"), ]; function checkLogIn($username, $password) { global $USERS; $hashedPassword = saltedHash($password); $expectedPassword = $USERS[$username]; echo " H: $hashedPassword\n E: $expectedPassword\n"; echo "User '$username' has password '$password'? "; if ($hashedPassword === $expectedPassword) { echo "yes\n"; } else { echo "no\n"; } } // ==== TEST CODE: ==== checkLogIn("user1", "phplol"); checkLogIn("user1", "password1"); echo "\n"; checkLogIn("user2", "phplol"); checkLogIn("user2", "hunter2"); echo "\n"; checkLogIn("user3", "phplol"); checkLogIn("user3", "FN4A_zKEe]33p!"); echo "\n"; checkLogIn("user4", "phplol"); checkLogIn("user4", "xXgjan3a58qzX3"); echo "\n"; echo "Now let's get funky!"; checkLogIn("user3", "password1");

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)
7.1.70.0030.00717.01
7.1.60.0030.01017.31
7.1.50.0060.01616.85
7.1.00.0030.07722.50
7.0.200.0060.01216.84
7.0.60.0000.04319.80
7.0.50.0130.04317.90
7.0.40.0130.07720.41
7.0.30.0300.03720.34
7.0.20.0370.07320.07
7.0.10.0070.08720.07
7.0.00.0030.04320.07
5.6.280.0000.07720.78
5.6.210.0100.07320.57
5.6.200.0000.04718.18
5.6.190.0030.06020.39
5.6.180.0400.07020.46
5.6.170.0500.06020.56
5.6.160.0130.07320.54
5.6.150.0030.05018.18
5.6.140.0030.04318.27
5.6.130.0200.07318.24
5.6.120.0130.07721.13
5.6.110.0070.03721.02
5.6.100.0070.08020.96
5.6.90.0000.04321.02
5.6.80.0100.05720.36
5.6.70.4370.03720.42
5.5.350.0000.03720.44
5.5.340.0000.05718.01
5.5.330.0100.07020.27
5.5.320.0030.04020.31
5.5.310.0200.06320.27
5.5.300.0200.06717.98
5.5.290.0100.04718.02
5.5.280.0000.05020.69
5.5.270.0100.04020.65
5.5.260.0100.08320.90
5.5.250.0100.06720.75
5.5.240.0270.06720.14
5.4.450.0900.07319.58
5.4.440.0800.06319.39
5.4.430.0970.06319.19
5.4.420.0830.05719.35
5.4.410.1100.05719.35
5.4.400.0870.04719.31
5.4.390.0830.05718.84
5.4.380.0830.05319.15
5.4.370.0830.05319.25
5.4.360.0930.04719.12
5.4.350.0800.05719.14
5.4.340.0830.05719.13
5.4.320.0800.06019.15
5.4.310.0870.04319.21
5.4.300.1100.05319.23
5.4.290.0900.04719.06
5.4.280.0730.05718.87
5.4.270.0800.05319.25
5.4.260.0930.03719.26
5.4.250.0900.04019.11
5.4.240.0700.06019.28
5.4.230.0730.05719.14
5.4.220.1000.06019.11
5.4.210.0830.05719.32
5.4.200.0730.05319.28
5.4.190.0770.05719.27
5.4.180.0970.07718.96
5.4.170.0970.06019.24
5.4.160.1270.05019.04
5.4.150.0930.07719.04
5.4.140.0800.05016.58
5.4.130.0800.04716.36
5.4.120.0830.06316.42
5.4.110.0830.06016.24
5.4.100.0970.04016.67
5.4.90.0970.06716.24
5.4.80.0900.05016.65
5.4.70.0270.03316.59
5.4.60.0230.07716.26
5.4.50.0000.04716.38
5.4.40.0030.07016.55
5.4.30.0000.03316.23
5.4.20.0100.04016.43

preferences:
29.03 ms | 401 KiB | 5 Q