Question

Est-il possible de convertir un entier en chaîne en PHP?

Était-ce utile?

La solution

Vous pouvez utiliser le strval () . fonction 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";

Autres conseils

Il y a plusieurs façons de le faire.

Deux exemples:

 $str = (string) $int;
 $str = "$int";     

Voir le manuel PHP sur Types Jongler pour plus.

$foo = 5;

$foo = $foo . "";

maintenant $ foo est une chaîne.

Mais, vous voudrez peut-être vous habituer au casting. Comme le casting est le moyen approprié pour accomplir quelque chose de ce genre.

$foo = 5;    
$foo = (string)$foo;

Vous pouvez également encapsuler des guillemets:

$foo = 5;
$foo = "$foo"

Il existe un certain nombre de moyens pour " convertir " un entier à une 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érez 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 dans la nature qui reposait sur ce comportement, alors j'ai pensé le transmettre.

Toutes ces réponses sont excellentes, 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 cela pourrait être:

$string = (string)$intValue ; 

ou:

settype(&$intValue ,'string');  

Il existe de nombreuses méthodes de conversion possibles:

$input => 123
sprintf('%d',$input) => 123
(string)$input => 123
strval($input) => 123
settype($input, "string") => 123

Vous pouvez utiliser l'opérateur de période et y concaténer une chaîne (le type sera converti 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;

Je dirais que cela dépend du contexte. strval () ou l'opérateur de diffusion (chaîne) peut être utilisé, Cependant, dans la plupart des cas, PHP décidera de ce qui est bon pour vous, par exemple si vous l'utilisez avec echo ou printf ... Une petite note: die () nécessite une chaîne et ne montrera aucun int:)

Comme le montrent bien les réponses, oui, il y a plusieurs façons. Cependant, en PHP, vous avez rarement besoin de le faire. La "manière dogmatique" écrire en PHP, c'est se fier au système de dactylographie en vrac de la langue, qui contraindra le type de manière transparente en fonction des besoins. 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);
$amount = 2351.25;
$str_amount = "2351.25";

$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount);

Ainsi, l'écho sera renvoyé chaîne

$integer = 93;
$stringedInt = $integer.'';

est plus rapide que

$integer = 93;
$stringedInt = $integer."";
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top