3v4l.org

run code in 300+ PHP versions simultaneously
<?php const COUNT = 1_000_000; $methods = ['getLastName', 'getFirstName', 'getStreet', 'getCity', 'getZipCode', 'getCountry']; $cacheOld = []; $cacheNew = []; $cacheSimplified = []; foreach ($methods as $method) { $cacheOld[$method] = $method; $cacheNew[$method] = $method; $cacheOld[strtolower($method)] = $method; $cacheNew[strtolower($method)] = $method; $cacheSimplified[strtolower($method)] = $method; $name = substr($method, 3); $cacheOld[$name] = $method; $cacheNew[lcfirst($name)] = $method; $cacheOld[strtolower($name)] = $method; $cacheNew[strtolower($name)] = $method; $cacheSimplified[strtolower($name)] = $method; } function run(string $name, callable $callback): void { global $names; $time = microtime(true); for ($i = 0; $i < COUNT; ++$i) { foreach (['lastName', 'firstName', 'street', 'city', 'zipCode', 'country'] as $item) { $callback($item); } } $time = microtime(true) - $time; echo sprintf('%.6f ms: %s', $time, $name), "\n"; } run('old', function ($name) use ($cacheOld) { if (isset($cacheOld[$name])) { return $cacheOld[$name]; } elseif (isset($cacheOld[$lcItem = strtolower($name)])) { return $cacheOld[$lcItem]; } }); run('new', function ($name) use ($cacheNew) { if (isset($cacheNew[$name])) { return $cacheNew[$name]; } elseif (isset($cacheNew[$lcItem = strtolower($name)])) { return $cacheNew[$lcItem]; } }); run('simplified', function ($name) use ($cacheSimplified) { if (isset($cacheSimplified[$lcItem = strtolower($name)])) { return $cacheSimplified[$lcItem]; } }); run('simplified2', function ($name) use ($cacheSimplified) { if (isset($cacheSimplified[$name])) { return $cacheSimplified[$name]; } elseif (isset($cacheSimplified[$lcItem = strtolower($name)])) { return $cacheSimplified[$lcItem]; } });
Output for 8.4.11
0.267446 ms: old 0.173823 ms: new 0.312401 ms: simplified 0.257153 ms: simplified2

preferences:
73.72 ms | 405 KiB | 5 Q