3v4l.org

run code in 300+ PHP versions simultaneously
<?php function benchmark(string $name, callable $callback) { $string = ')(8234@#$ABCFG3478&* hello'; $time = microtime(true); for ($i = 0; $i < 500_000; ++$i) { $callback($string); } $time = microtime(true) - $time; echo number_format($time, 6), 's: ', $name, ' (result: ', $callback($string), ")\n"; } benchmark('preg', function (string $string) { $firstLetter = null; if (preg_match('/[a-z0-9]/i', $string, $match)) { $firstLetter = $match[0]; } return $firstLetter; }); benchmark('ctype_alnum', function (string $string) { $length = strlen($string); $firstLetter = null; for ($i = 0; $i < $length; ++$i) { if (ctype_alnum($string[$i])) { $firstLetter = $string[$i]; break; } } return $firstLetter; }); benchmark('strcspn', function (string $string) { return $string[strcspn($string, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")] ?? null; });
Output for 7.4.8
0.109207s: preg (result: 8) 0.097710s: ctype_alnum (result: 8) 0.171330s: strcspn (result: 8)
Output for 7.4.7
0.112319s: preg (result: 8) 0.095006s: ctype_alnum (result: 8) 0.176000s: strcspn (result: 8)
Output for 7.4.6
0.113054s: preg (result: 8) 0.096397s: ctype_alnum (result: 8) 0.175261s: strcspn (result: 8)
Output for 7.4.5
0.110904s: preg (result: 8) 0.100424s: ctype_alnum (result: 8) 0.175249s: strcspn (result: 8)
Output for 7.4.4
0.127381s: preg (result: 8) 0.098528s: ctype_alnum (result: 8) 0.168418s: strcspn (result: 8)
Output for 7.4.3
0.108616s: preg (result: 8) 0.092715s: ctype_alnum (result: 8) 0.171960s: strcspn (result: 8)
Output for 7.4.2
0.121002s: preg (result: 8) 0.118969s: ctype_alnum (result: 8) 0.209604s: strcspn (result: 8)
Output for 7.4.1
0.117536s: preg (result: 8) 0.097046s: ctype_alnum (result: 8) 0.167549s: strcspn (result: 8)
Output for 7.4.0
0.107974s: preg (result: 8) 0.094272s: ctype_alnum (result: 8) 0.174642s: strcspn (result: 8)
Output for 7.2.0 - 7.2.32, 7.3.0 - 7.3.20
Parse error: syntax error, unexpected '_000' (T_STRING), expecting ';' in /in/M08qg on line 8
Process exited with code 255.

preferences:
46.18 ms | 739 KiB | 4 Q