it-swarm.com.de

Konvertieren einer Ganzzahl in eine Zeichenfolge in PHP

Gibt es eine Möglichkeit, eine Ganzzahl in eine Zeichenfolge in PHP zu konvertieren?

433
kman99

Sie können die Funktion strval() verwenden, um eine Zahl in einen String zu konvertieren.

Aus Sicht der Instandhaltung ist es offensichtlich, was Sie zu tun haben, und nicht die anderen eher esoterischen Antworten. Natürlich hängt es von Ihrem Kontext ab.

$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

Dafür gibt es viele Möglichkeiten.

Zwei Beispiele:

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

Weitere Informationen finden Sie im PHP -Handbuch über Types Jonglieren .

79
Sanjay Sheth
$foo = 5;

$foo = $foo . "";

jetzt ist $foo eine Zeichenfolge.

Aber Sie möchten sich vielleicht an das Casting gewöhnen. Denn Casting ist der richtige Weg, um so etwas zu erreichen.

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

Eine andere Möglichkeit besteht darin, in Anführungszeichen zu kapseln:

$foo = 5;
$foo = "$foo"
40
Sev

Es gibt verschiedene Möglichkeiten, eine Ganzzahl in eine Zeichenfolge in PHP "umzuwandeln". 

Die traditionelle CS-Methode besteht darin, die Variable als Zeichenfolge umzuwandeln

$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";

Sie können auch die implizite Typumwandlung und String-Interpolation von PHP nutzen

$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";     

Ähnlich wie oben kann jede Funktion, die einen String akzeptiert und zurückgibt, zur Konvertierung und Ganzzahl verwendet werden. Folgendes berücksichtigen

$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"; 

Ich würde die abschließende Option nicht empfehlen, aber ich habe Code in der Wildnis gesehen, der sich auf dieses Verhalten stützte, also dachte ich, ich würde ihn weitergeben.

9
Alan Storm

Alle diese Antworten sind großartig, aber alle geben eine leere Zeichenfolge zurück, wenn der Wert Null ist.

Versuche Folgendes:

$v = 0;

$s = (string)$v : (string)$v ? "0";
8
$intValue = 1; 
$string = sprintf('%d',$intValue ); 

oder es könnte sein:

$string = (string)$intValue ; 

oder: 

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

Es gibt viele mögliche Konvertierungsmöglichkeiten:

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

Sie können entweder den Period-Operator verwenden und eine Zeichenfolge mit ihm verketten (und er wird in eine Zeichenfolge umgewandelt):

$integer = 93;
$stringedInt = $integer."";

Oder, richtiger, Sie können einfach die Ganzzahl in eine Zeichenfolge umwandeln:

$integer = 93;
$stringedInt = (string) $integer;
3
Andrew Dunkman
$amount = 2351.25;
$str_amount = "2351.25";

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

Das Echo wird also zurückgegeben string

0

Ich würde sagen, es hängt vom Kontext ab. strval () oder der Casting-Operator (string) könnte verwendet werden, in den meisten Fällen entscheidet PHP, was gut für Sie ist, wenn Sie es beispielsweise mit echo oder printf verwenden ... Eine kleine Anmerkung : die () benötigt einen String und zeigt kein int :)

0
merkuro

Wie die Antworten hier zeigen, gibt es mehrere Möglichkeiten. In PHP müssen Sie das jedoch selten tun. Der "dogmatische Weg" zum Schreiben von PHP besteht darin, sich auf das lose Typisierungssystem der Sprache zu verlassen, das den Typ nach Bedarf transparent zwingt. Bei ganzzahligen Werten ist dies normalerweise problemlos. Sie sollten jedoch mit Gleitkommawerten sehr vorsichtig sein.

0
troelskn

Sie können einfach Folgendes verwenden:

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