Variables passées dans une URL sont-elles considérées comme des string

Variables passées dans une URL sont-elles considérées comme des string - PHP - Programmation

Marsh Posté le 21-06-2002 à 18:15:50    

Code :
  1. <a href="mapage.php?text=ce_texte_la&nb=5">

Dans ce cas quand je récupèrerai $nb dans la page suivante, est-ce que ce sera un (double) ou un (string) ?

Reply

Marsh Posté le 21-06-2002 à 18:15:50   

Reply

Marsh Posté le 21-06-2002 à 18:17:37    

bhen les variables ont pas de type... enfin t'en fais ce que tu veux
 
si nb = 0.9
 
$machin = $nb + 1.1;
 
machin vaudra 2
 
$machin = $nb . "a";
 
machin vaudra "0.9a"
 
il me semble...
 
Ha et tu dois pas mettre & mais &


Message édité par antp le 21-06-2002 à 18:18:09
Reply

Marsh Posté le 21-06-2002 à 18:57:06    

no antp & c'est pour passer plusieurs parametres :)  

antp a écrit a écrit :

bhen les variables ont pas de type... enfin t'en fais ce que tu veux
 
si nb = 0.9
 
$machin = $nb + 1.1;
 
machin vaudra 2
 
$machin = $nb . "a";
 
machin vaudra "0.9a"
 
il me semble...
 
Ha et tu dois pas mettre & mais &  




---------------
All we need is a soul revolution
Reply

Marsh Posté le 21-06-2002 à 19:24:01    

tu écris du HTML ou XHTML je suppose
& indique le début d'une séquence spéciale
& signifie "&"
cf mon site: www.antp.be
tous les liens ont des & et pas des &
si tu mets & au lieu de & ça passe pas la validation du W3C, et ça peut foirer si par ex une de tes variable s'appelle "nbsp" :D

Reply

Marsh Posté le 22-06-2002 à 11:34:37    

Bien sûr que si les variables ont un type. Je viens de tester...

Code :
  1. <?
  2. if (isset($foo))
  3.   echo 'FOO type : '.gettype($foo).'<br>';
  4. if (isset($bar))
  5.   echo 'BAR type : '.gettype($bar).'<br>';
  6. ?>
  7. <br>
  8. <a href="test.php?foo=cetexte&bar=0.8>Click</a>

-->
FOO type : string
BAR type : string


Message édité par Dost67 le 22-06-2002 à 11:36:41
Reply

Marsh Posté le 22-06-2002 à 12:37:00    

Toutes les variables récupérées par méthode GET ou POST (donc présentes dans les tableaux $_GET et $_POST) sont du type string.
 
Si tu veux les convertir en integer il suffit de faire ce genre de manip :
 

Code :
  1. $nombre = (integer) $_GET['nombre'];


 
Enfin bon, le moteur de PHP sait reconnaitre aussi le type de variable. Par exemple il est possible d'additionner un entier avec une chaine de caractères si cette chaine ne contient que des chiffres.
 
Exemple :

Code :
  1. $nombre = "15" + 15;


$nombre : 30
 
Le transtypage n'est que rarement nécessaire mais si tu insistes pour l'utiliser. tu peux aussi utiliser la fonction suivante :
 

Code :
  1. $nombre = settype($nombre, "integer" );


 
Pour plus d'informations, regardes la doc officielle :
http://www.php.net/manual/fr/ref.variables.php
 
Bonne chance ;)
 
---
Ge-Off
http://zegoodboy.free.fr


Message édité par bidonSystem le 22-06-2002 à 12:40:56
Reply

Marsh Posté le 22-06-2002 à 16:01:39    

Est-ce que

Code :
  1. $nb = (integer)$nb

est égale à

Code :
  1. $nb = settype($nb, 'integer');

???

Reply

Marsh Posté le 22-06-2002 à 22:48:16    

Oui c'est équivalent, à la différence près que settype retourne "True" ou "False" si le transtypage s'est bien effectué.
 
Pour voir la différence essayes ceci...
 

Code :
  1. $nombre = "15"; // $nombre est un chaine de caractères --> "..."
  2. echo "<PRE>\n";
  3. echo (int) $nombre."\n";
  4. echo gettype($nombre)."\n\n";
  5. if ( settype($nombre, "integer" ) ) {
  6.     echo $nombre."\n";
  7.     echo gettype($nombre)."\n";
  8. }
  9. echo "</PRE>\n";


 
Tu verras ainsi que "settype()" change directement le type de la variable alors que pour changer de type avec "(int)" il faut passer par une affectation.
 
Voilà ;D
 
---
Ge-Off
http://zegoodboy.free.fr

Reply

Marsh Posté le 23-06-2002 à 17:37:23    

OK... donc

Code :
  1. $nb = (int)$nb

ou

Code :
  1. settype($nb, 'integer')

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed