3v4l.org

run code in 300+ PHP versions simultaneously
<?php declare(strict_types = 1); $n = "5281"; // checking the first byte is enough //---------------------------------------------------------------------------------------- $st = microtime(TRUE); for($i = 0; $i < 1000000; $i++){ $x = is_numeric($n); } echo number_format(microtime(TRUE) - $st, 10) . "\n"; //---------------------------------------------------------------------------------------- $st = microtime(TRUE); for($i = 0; $i < 1000000; $i++){ $x = is_numeric($n[0]); // check only the first byte - makes it a bit slower tho } echo number_format(microtime(TRUE) - $st, 10) . "\n"; //---------------------------------------------------------------------------------------- $digits = [ 0 => TRUE, 1 => TRUE, 2 => TRUE, 3 => TRUE, 4 => TRUE, 5 => TRUE, 6 => TRUE, 7 => TRUE, 8 => TRUE, 9 => TRUE ]; $st = microtime(TRUE); for($i = 0; $i < 1000000; $i++){ $x = isset($digits[$n[0]]); // fastest solution } echo number_format(microtime(TRUE) - $st, 10) . "\n"; //---------------------------------------------------------------------------------------- $st = microtime(TRUE); for($i = 0; $i < 1000000; $i++){ $x = (String)(Int)$n[0] === $n[0]; // slowest solution } echo number_format(microtime(TRUE) - $st, 10) . "\n";

preferences:
27.47 ms | 402 KiB | 5 Q