verification qu'une variable est bien un nombre entier

ViPHP
ViPHP | 4674 Messages

07 nov. 2007, 01:09

Merci Hubert pour ce test :).
Je ne connaissais pas la fonction strspn().

Au final, is_numeric() ressort grand gagnant. Je pensais que preg_match serait un peu plus rapide tout même ...

Encore merci pour le test, je le garde de côté ;-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 5924 Messages

07 nov. 2007, 03:03

Non, preg_match() c'est pas méga performant. C'est plus performant que ereg mais il ne faut pas oublier que dans le preg_match() il y a toute la partie traduction de la pcre alors que dans un is_numeric() et dans les autres fonctions, le masque est codé en dur, c'est normal que preg_match() prenne autant de temps…

ViPHP
AB
ViPHP | 5818 Messages

07 nov. 2007, 03:12

Puisqu'on est dans les bench, j'avais comparé les preg, ereg avec l'utilisation d'une ou plusieurs fonctions simples ... et des résultats parfois surprenants.
http://www.phpfrance.com/forums/voir_re ... php#211495

Mammouth du PHP | 843 Messages

08 nov. 2007, 22:38

Merci à tous pour pour vos réponses :pouce:

j'ai opté pour ctype_digit() qui est dans mon cas le meilleur rapport légerté/optimisation ;)

PS. pour ce qui est du RDV avec TRUC, j'ai pas osé... :oops: je suis un grand timide :lol:
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

08 nov. 2007, 23:17

Attention, ctype_digit() ne fera probablement pas partie de PHP6... si j'étais toi j'utiliserais plutôt filter_input()/filter_var() (plus un if pour vérifier que le nombre est positif) ou encore preg_match().