Est-il possible de convertir un entier en chaîne en PHP?
Vous pouvez utiliser la fonction strval()
pour convertir un nombre en chaîne.
Du point de vue de la maintenance, il est évident que vous essayez de faire plutôt que d’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
// 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 PHP Manuel sur Types Juggling pour plus d'informations.
$foo = 5;
$foo = $foo . "";
maintenant $foo
est une chaîne.
Mais, vous voudrez peut-être vous habituer au casting. Comme le casting est la bonne façon d'accomplir quelque chose de ce genre.
$foo = 5;
$foo = (string)$foo;
Une autre façon consiste à encapsuler des guillemets:
$foo = 5;
$foo = "$foo"
Il y a plusieurs façons de "convertir" un entier en chaîne en PHP.
La méthode CS traditionnelle consiste à convertir la variable en chaîne.
$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 de type implicite et de l'interpolation de chaînes 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 dans ce qui précède, toute fonction qui accepte et retourne une chaîne peut être utilisée pour convertir un entier. Considérer 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 l'option finale, mais j'ai vu du code sauvage qui s'appuyait sur ce comportement, alors j'ai pensé le transmettre.
Toutes ces réponses sont bonnes, mais elles vous renvoient toutes une chaîne vide si la valeur est zéro.
Essayez ce qui suit:
$v = 0;
$s = (string)$v : (string)$v ? "0";
$intValue = 1;
$string = sprintf('%d',$intValue );
ou ce pourrait être:
$string = (string)$intValue ;
ou:
settype(&$intValue ,'string');
Il y a beaucoup de manières de conversion possibles:
$input => 123
sprintf('%d',$input) => 123
(string)$input => 123
strval($input) => 123
settype($input, "string") => 123
Vous pouvez soit utiliser l'opérateur de période et y concaténer une chaîne (et le type sera transformé en chaîne):
$integer = 93;
$stringedInt = $integer."";
Ou, plus correctement, vous pouvez simplement transtyper le nombre entier en chaîne:
$integer = 93;
$stringedInt = (string) $integer;
$amount = 2351.25;
$str_amount = "2351.25";
$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount);
Donc l'écho sera return string
Je dirais que cela dépend du contexte. strval () ou l'opérateur de casting (chaîne) peuvent être utilisés, cependant dans la plupart des cas PHP décidera ce qui est bon pour vous, par exemple si vous l'utilisez avec echo ou printf ... : die () a besoin d'une chaîne et ne montrera aucun int :)
Comme les réponses le montrent bien, oui, il y a plusieurs façons. Cependant, dans PHP, vous avez rarement besoin de le faire. La "méthode dogmatique" pour écrire PHP consiste à utiliser le système de dactylographie en vrac de la langue, qui contraindra le type de manière transparente, le cas échéant. Pour les valeurs entières, c'est généralement sans problème. Vous devez cependant faire très attention aux valeurs en virgule flottante.
Vous pouvez simplement utiliser les éléments suivants:
$intVal = 5;
$strVal = trim($intVal);