gettype et les int venant d'une superglobale

bugPHP
Invité n'ayant pas de compte PHPfrance

19 mai 2014, 22:45

Bonjour,
Je suis un petit nouveau et en travaillant sur un truc je me suis rendu compte d'une petite chose qui m'agace, je vous explique:

je taf un peu en ce moment sur l'envoi de variables par les super globales $_GET, $_POST, ...

et lorsque je cherche a voir le type d'une variable réceptionnée qui est un chiffre et bien lorsque je met gettype($_GET['nombre']), PHP me dit que c'est une chaine de caractère (string)...

la page d'envoi est comme ceci:
<form method="GET" action="reception.php">
<input type="number" name="nombre" placeholder="Nombre"/>
<input type="submit" value="envoyer"/>
</form>

et ma page de réception:
echo $_GET['nombre'] .' est considéré comme un : ' . gettype($_GET['nombre']) .' <br/>';

résultat:
5 est considéré comme un : string

JE NE COMPRENDS PAS POURQUOI UN "INT" DEVIENT UN "STRING"...
ça n'a pas de bon sens!?? n'est ce pas??? :?

ViPHP
xTG
ViPHP | 7331 Messages

20 mai 2014, 07:30

Parce qu'une requête HTTP n'est qu'une suite de chaîne de caractères. ;)
Et même sans cela, il n'y a rien en HTML qui te permet de renseigner un input de type numérique, il n'y a que les input de type text.