Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tester qu'une variable est un nombre

11 réponses
Avatar
Delf
Y a-t-il une fonction en PHP (ou un systeme de motifs comme sous Perl) qui
permettrait de savoir si une variable est bien un nombre ou pas ?
Merci.

--
Delf

10 réponses

1 2
Avatar
Harry Cover
On 26 Jan 2004 12:01:04 GMT, "Delf" wrote:

Y a-t-il une fonction en PHP (ou un systeme de motifs comme sous Perl) qui
permettrait de savoir si une variable est bien un nombre ou pas ?
Merci.


is_numeric()

cf l'aide de php (dispo en fichier d'aide Windows, un must à avoir)
http://fr3.php.net/get/php_manual_fr.chm/from/a/mirror

Avatar
Thibaut Allender

Y a-t-il une fonction en PHP (ou un systeme de motifs comme sous Perl) qui
permettrait de savoir si une variable est bien un nombre ou pas ?


RTFM ;)
http://fr.php.net/is_numeric

--
freelance + web|system developper|designer
+ 32 496 26 75 76 + http://www.capsule.org

Avatar
john gallet
Bonjour,

Y a-t-il une fonction en PHP (ou un systeme de motifs comme sous Perl) qui
permettrait de savoir si une variable est bien un nombre ou pas ?


Qu'est-ce qu'un nombre ? Entier ou flottant ? Quel radix pour les
flottants : . ou , ? La notation scientifique 12e1 acceptée ou non ? Les
valeurs négatives acceptées ou non ?

is_numeric() est loin d'être une panacée, petit exemple :

<?php
$str="+12,1";
if(is_numeric($str)) echo "numeric";
else echo "non numeric";
?>

=> non numeric si pas dans le bon setlocale... (mais renvoie bien
"numeric avec +12.1)

Donc comme pour toutes les variables en entrée, le seul moyen de les
tester c'est de les comparer par rapport à une liste de caractères
autorisés, avec remplacements si nécessaire, avant toute autre éventuel
test.

a++
JG

Avatar
Delf
"john gallet" a écrit dans le message news:

Qu'est-ce qu'un nombre ? Entier ou flottant ? Quel radix pour les
flottants : . ou , ? La notation scientifique 12e1 acceptée ou non ? Les
valeurs négatives acceptées ou non ?


is_numeric() me suffit amplement. C'est juste pour tester des nombres du
genre 1, 25, 457, etc

--
Delf

Avatar
Thibaut Allender

is_numeric() me suffit amplement. C'est juste pour tester des nombres du
genre 1, 25, 457, etc


is_int() suffit alors

--
freelance + web|system developper|designer
+ 32 496 26 75 76 + http://www.capsule.org

Avatar
john gallet
Re,

is_numeric() me suffit amplement. C'est juste pour tester des nombres du
genre 1, 25, 457, etc
is_int() suffit alors



Non elle ne "suffit" pas : elle est nécessaire :-)

JG


Avatar
Delf
"Thibaut Allender" a écrit dans le message news:

is_int() suffit alors


Pas pour une valeur venant d'un formulaire je crois... j'ai du utiliser
is_numeric() (comme dit ds le FM)

--
Delf

Avatar
nospam
Thibaut Allender wrote:


is_numeric() me suffit amplement. C'est juste pour tester des nombres du
genre 1, 25, 457, etc


is_int() suffit alors


Non car il se peut que la valeur en question soit de type chaine de
caractère (formulaire par exemple).

--
Romuald Brunet, ICQ 33033393, http://mog.online.fr

Remplacez nospam par mon prénom pour me contacter par email


Avatar
Thibaut Allender

is_int() suffit alors


Non car il se peut que la valeur en question soit de type chaine de
caractère (formulaire par exemple).


is_int(abs($chaine)) dans ce cas

--
freelance + web|system developper|designer
+ 32 496 26 75 76 + http://www.capsule.org


Avatar
nospam
Thibaut Allender wrote:


is_int() suffit alors


Non car il se peut que la valeur en question soit de type chaine de
caractère (formulaire par exemple).


is_int(abs($chaine)) dans ce cas


Raté :)

<?php
if ( is_int(abs("toto")) ) {
echo "C'est un int";
} else {
echo "Ce n'est pas un int";
}
?>

--
Romuald Brunet, ICQ 33033393, http://mog.online.fr

Remplacez nospam par mon prénom pour me contacter par email



1 2