Connaitre le type d'une variable en php ? [Fermé]

Signaler
-
 PhilPantin -
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

7 réponses

Messages postés
294
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
3 décembre 2019
78
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

gettype($lavariable) serait plus simple.
Non, gettype est déprécié.

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

Bien à vous
Messages postés
294
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
3 décembre 2019
78
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
sans majuscules : gettype($lavariable) serait plus simple.
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 :-)
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à :)
et https://www.php.net/ c'est fait pourquoi à ton avis?
Messages postés
294
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
3 décembre 2019
78 > ;)
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 ....
Messages postés
294
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
3 décembre 2019
78
A toi de jouer maintenant ....

Et n'oublies pas de marquer le post resolu
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 :(