web-dev-qa-db-fra.com

Conversion d'un entier en chaîne PHP

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

433
kman99

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";
674
Chris Thompson

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.

79
Sanjay Sheth
$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"
40
Sev

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.

9
Alan Storm

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";
8
Microprocessor Cat
$intValue = 1; 
$string = sprintf('%d',$intValue ); 

ou ce pourrait être:

$string = (string)$intValue ; 

ou: 

settype(&$intValue ,'string');  
6
gewel

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
4
Saad

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;
3
Andrew Dunkman
$amount = 2351.25;
$str_amount = "2351.25";

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

Donc l'écho sera return string

0
Kaushik Shrimali

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 :)

0
merkuro

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.

0
troelskn

Vous pouvez simplement utiliser les éléments suivants:

$intVal = 5;
$strVal = trim($intVal);
0
Imam