Page 1 sur 1

question sur la gestion de type

Posté : 13 mai 2011, 03:16
par light86
bonsoir je travaille avec les entier mais quand mit strlen(1) il m'a retourné
1 je pensais que il allait convertir 1 en une chaine de caractère

je voudrais savoir comment php gère les types de variables
merci

Re: question sur la gestion de type

Posté : 13 mai 2011, 08:02
par xTG
Il les gère dynamiquement. Donc il fait du cast suivant les traitements que tu lui fais faire.
Et au passage... strlen("1") (ou bien strlen(1) ) fait bien une longueur de 1. ;)

Re: question sur la gestion de type

Posté : 13 mai 2011, 12:37
par light86
bonjour merci pour votre réponse si j'ai une chaine de caractère qui est égale à 1 peut t'il la convertir en 1 entier
merci

Re: question sur la gestion de type

Posté : 13 mai 2011, 13:09
par Maskime
Hello,

Plutôt de grand discours voici un peu de code pour t'éclairer :
<?php
$iValue = 12;//On a un int
$sValue = "12";//On a un string

if($sValue == $iValue)//Retourne true parce qu'il voit que le string contient un int et du coup il comprend que tu fais un test sur la valeur
if($sValue === $iValue)//Retourne false parce que l'opérateur '===' va tester le contenu et le type de la variable. Là tu as bien le même contenu, mais le type de la variable n'est pas le même

strlen($sValue)//Là rien d'étonnant la longueur vaut 2
strlen($iValue)//Là il convertit ton int en string pour faire son calcul de longueur : 2

$iValue + $sValue//Conversion de ta chaîne en int, le résultat sera 24
?>