Existe-t-il un moyen de convertir un nombre entier en chaîne de caractères en PHP ?
Bon point. J'ai ajouté quelques fonctions mysql_escape_string pour nettoyer tout ça.
Existe-t-il un moyen de convertir un nombre entier en chaîne de caractères en PHP ?
Vous pouvez utiliser le strval()
pour convertir un nombre en chaîne de caractères.
Du point de vue de la maintenance, ce que vous essayez de faire est plus évident que certaines autres réponses plus ésotériques. Bien sûr, cela dépend de votre contexte.
$var = 5;
// Inline variable parsing
echo "I'd like {$var} waffles"; // = I'd like 5 waffles
// String concatenation
echo "I'd like ".$var." waffles"; // I'd like 5 waffles
// The two examples above have the same end value...
// ... And so do the two below
// Explicit cast
$items = (string)$var; // $items === "5";
// Function call
$items = strval($var); // $items === "5";
Il y a plusieurs façons de le faire.
Deux exemples :
$str = (string) $int;
$str = "$int";
Voir le manuel PHP sur Types Jonglage pour plus.
Convertir 0
a ""
n'est peut-être pas mauvais ; cela dépend vraiment de l'application. Cela dit, vous soulevez un bon point.
$f = 0 ; echo "$f" ; fonctionne bien pour moi, le zéro reste toujours zéro. L'exécution de 9999999 boucles (chaîne de caractères) prend 0,4046459... seconde alors que "$var" prend 0,3725229... aucune différence.
Il y a plusieurs façons de "convertir" un entier en chaîne de caractères en PHP.
La méthode traditionnelle en informatique consiste à convertir la variable en chaîne de caractères :
$int = 5;
$int_as_string = (string) $int;
echo $int . ' is a '. gettype($int) . "\n";
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
Vous pouvez également tirer parti de la conversion implicite des types et de l'interpolation des chaînes de caractères de PHP :
$int = 5;
echo $int . ' is a '. gettype($int) . "\n";
$int_as_string = "$int";
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
$string_int = $int.'';
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
Enfin, comme ci-dessus, toute fonction qui accepte et renvoie une chaîne de caractères peut être utilisée pour convertir un nombre entier. Considérons ce qui suit :
$int = 5;
echo $int . ' is a '. gettype($int) . "\n";
$int_as_string = trim($int);
echo $int_as_string . ' is a ' . gettype($int_as_string) . "\n";
Je ne recommanderais pas la dernière option, mais j'ai vu du code dans la nature qui s'appuyait sur ce comportement, alors j'ai pensé que je devais le faire passer.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
11 votes
PHP est faiblement typé. Ce qui était un entier peut aussi être une chaîne de caractères.
echo
il (utilisé dans ce qu'on appelle contexte de la chaîne ).3 votes
@hakre oui, le php est faiblement typé et l'écho imprimerait la valeur dans un contexte de chaîne de caractères. Mais cela ne change pas le type de données d'une variable en interne. Par conséquent, strval($variable) est correct.
3 votes
@Vivek :
strval()
ne change pas le$variable
en interne non plus.4 votes
Je voulais dire $variable = strval($variable) ;