PRATIQUE PHP 
Tester le type d'une variable en PHP
 
"Comment puis-je m'assurer qu'un utilisateur entre bien un nombre dans mon formulaire PHP ?" (09/02/2005)

Nombreuses sont les possibilités pour l'utilisateur d'un formulaire Web de se tromper, voire de sciemment insérer des données erronées dans les champs qui lui sont proposés.

Parmi les problèmes qui peuvent régulièrement surgir lors de la validation d'un formulaire se trouve celui du type de la valeur : les champs étant passés sous forme de chaîne de caractères, il devient difficile de savoir si l'utilisateur a bien entré un entier. Pour ne rien gâcher, PHP est un langage à faible typage…

Celui-ci dispose donc d'une série de fonctions permettant de connaître assez précisément le type de la variable testée, et d'agir en conséquence.

PHP : fonctions de test de type
Fonction
Description
is_numeric()
is_int()
is_integer()
is_float()
is_real()
is_double ()
is_long()
is_scalar()
Ces fonctions testent si la valeur est numérique, et affinent ce test : entier, virgule flottante, réel, double, long ou scalaire (type spécial pouvant contenir les type int, float, string ou bool).
is_bool()
Teste si la valeur est booléenne (true ou false, et non 0 ou 1)
is_string()
Teste si la valeur est une chaîne ("abcdfsdf4561.1f16s")
is_object()
Teste si variable est de type Objet (class MonObjet)
is_array()
Teste s'il s'agit d'un tableau (array())
is_resource()
Teste s'il s'agit d'une ressource PHP (liaison MySQL par exemple)
is_null()
Teste si la valeur est null (null)
is_callable()
Indique si la variable peut-être appellée comme fonction

  Forum

Réagissez dans les forums de JDN Développeurs

Dans tous les cas, avant de lancer ces tests, il sera utile de vérifier si les variables observées sont effectivement affectées, via isset(), avant de tester le type lui-même :

if (isset($_REQUEST['numeroSecu']) && is_int($_REQUEST[numeroSecu'']) {
  faireUnTruc();
else {
  faireAutreChose();
  }

 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page