Lorsqu'une chaîne de caractère 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ère '.', '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).
Lorsque la première expression est une chaîne de
caractères, le type de la variable dépend de la
seconde expression.
<?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 Small Pigs"; // $foo est du type integer (11)
$foo = 1 + "10 Little Piggies"; // $foo est du type integer (11)
$foo = "10.0 pigs " + 1; // $foo est du type integer (11)
$foo = "10.0 pigs " + 1.0; // $foo est du type float (11)
?>
Pour plus d'informations sur les conversions de type, voir les
pages de man à propos de la fonction strtod(3).
Si vous voulez testez 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.
<?php
echo "\$foo==$foo; type is " . gettype( $foo ) . "<br>\n";
?>