<?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