Pour les regexp, le cast est apparemment plus rapide :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <?php
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$val = "45.12";
$n = 10000;
$somme = 0;
for ($i = 0 ; $i < $n ; $i++) {
$start = microtime_float();
is_numeric($val) && (float)$val == (int)$val;
$somme += microtime_float() - $start;
}
var_dump($somme/$n);
$somme = 0;
for ($i = 0 ; $i < $n ; $i++) {
$start = microtime_float();
is_numeric($val) && preg_match('/\./', $val) == 0;
$somme += microtime_float() - $start;
}
var_dump($somme/$n);
?> |
me donne ceci :
float(1.1571621894836E-5) float(1.4062857627869E-5)
Donc le cast met en moyenne 0.0116 millisecondes alors que le preg met en moyenne 0.0141 millisecondes. Ca reste minime comme différence ![:lol:](https://www.developpez.net/forums/images/smilies/icon_lol.gif)
EDIT il y a peut-etre d'autres façons d'ecrire la regexp, je suis pas très fort là dessus.
Partager