Connaitre le type d'une variable en php ?

Fermé
Flynt - 11 déc. 2007 à 12:42
 PhilPantin - 15 févr. 2010 à 08:00
Bonjour,

J'aimerais simplement savoir s'il existe en php des fonctions similaires à
isBoolean ou isInteger
qui permettent de tester le type d'une variable :)

A vous
A voir également:

7 réponses

cmonpseudoamoa Messages postés 294 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 3 décembre 2019 77
11 déc. 2007 à 12:57
Est ce que ceci correspond à ta demande ?

--------------------------------------------------------------------------------------------------------------------------------
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_numeric()
is_int()
is_integer()
is_float()
is_real()
is_double ()
is_long()
is_scalar()

-----------------------------------------------------
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
12
gettype($lavariable) serait plus simple.
9
Non, gettype est déprécié.

Lire : https://www.php.net/manual/fr/function.gettype.php

Bien à vous
0
cmonpseudoamoa Messages postés 294 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 3 décembre 2019 77
11 déc. 2007 à 13:01
Précision supplémentaire


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();
}

infos trouvées ici
2
sans majuscules : gettype($lavariable) serait plus simple.
2
Non, minuscules, majuscules, php s'en fiche pour le nom des fonctions (faux en revanche pour le nom des variables). Donc GETTYPE, gETtYPE, etc., c'est kif-kif bourricot :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci pour les réponses,

J'ai entre temps trouvé cette page qui référence pas mal de fonctions utiles :

http://www.nexen.net/articles/dossier/17440-liste_des_fonctions_php_a_surveiller.php

mais les tiennes répondent encore mieux à ma demande :)

Pour info j'essaye de faire des controles d'erreurs sur un formulaire en ajax et je teste donc au début de la page php qui effectue le traitement si la/les variable(s) sont bien renseignées :

if(isset($_POST["idsel"]))
{

ensuite ce qui m'intéresse c'est de tester le type à peu près comme ça donc :

if (!$_POST["idsel"].is_numeric)

puis de modifier la balise div qui m'intéresse de façon à ce qu'elle affiche le bon message d'erreur.

Voilà :)
1
et https://www.php.net/ c'est fait pourquoi à ton avis?
0
cmonpseudoamoa Messages postés 294 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 3 décembre 2019 77 > ;)
27 août 2008 à 11:55
Franchement je ne vois pas l'intérêt de cette réponse 8 mois plus tard et sur un ton aussi présomptueux et arrogant ....
0
cmonpseudoamoa Messages postés 294 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 3 décembre 2019 77
11 déc. 2007 à 14:02
A toi de jouer maintenant ....

Et n'oublies pas de marquer le post resolu
0
Ca fonctionne comme je veux, par contre pour le post à résolu j'ai bien peur de pas pouvoir n'étant pas enregistré sur le site :(
0