|
5.2.5.4 Conversion de chaînes de caractères
Lorsqu'une chaîne de caractères est évaluée comme une valeur numérique,
le résultat et le type de la variable sont déterminés comme suit.
La chaîne de caractères est de type "double" si
elle contient un des caractères '.', 'e' ou 'E'. Sinon,
elle est de type entier (
"integer"
).
La valeur est définie par la première partie
de la chaîne. Si la chaîne de caractères
débute par une valeur numérique cette valeur
sera celle utilisée. Sinon, la valeur sera égale
à 0 (zéro). Les données numériques valides ont un signe optionnel, suivies
par un ou plusieurs digits (optionnellement, contenant un point de décimal),
suivies par un exponentiel optionnel. L'exponentiel peut être un 'e' ou
un 'E' suivi par un ou plusieurs digits.
| Exemples de conversions automatiques |
<?php $foo = 1 + "10.5"; // $foo est du type float (11.5) $foo = 1 + "-1.3e3"; // $foo est du type float (-1299) $foo = 1 + "bob-1.3e3"; // $foo est du type integer (1) $foo = 1 + "bob3"; // $foo est du type integer (1) $foo = 1 + "10 petits cochons"; // $foo est du type integer (11) $foo = 4 + "10.2 gros cochons"; // $foo est du type float (14.2) $foo = "10.0 cochons " + 1; // $foo est du type float (11) $foo = "10.0 cochons " + 1.0; // $foo est du type float (11) ?>
|
Pour plus d'informations sur les conversions de type, voir les
pages de man Unix à propos de la fonction
strtod(3)
.
Si vous voulez tester l'un des exemples de cette section,
vous pouvez faire un copier/coller et l'insérer dans un script
pour voir comment il se comporte :
| Exemples de conversions |
<?php echo "\$foo==$foo; type is " . gettype( $foo ) . "<br />\n"; ?>
|
Ne vous attendez pas à récupérer le code d'un caractère en le convertissant
en un entier (comme vous pourriez le faire en C par exemple). Utilisez
les fonctions
ord
et
chr
pour convertir les caractères en leurs codes.
|