Frage

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

War es hilfreich?

Lösung

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

Von einer Wartung Perspektive seiner offensichtlichen, was Sie versuchen vielmehr zu tun, als einige der anderen esoterischeren Antworten. Natürlich ist es auf dem Kontext abhängt.

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

Andere Tipps

Es gibt viele Möglichkeiten, dies zu tun.

Zwei Beispiele:

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

Sehen Sie die PHP Manual auf Typen Jonglieren mehr.

$foo = 5;

$foo = $foo . "";

Jetzt $foo ist eine Zeichenfolge.

Aber, können Sie wollen Gießen gewöhnen. Als Casting ist der richtige Weg, etwas ähnliches zu erreichen.

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

Eine andere Möglichkeit ist in Anführungszeichen zu kapseln:

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

Es gibt eine Reihe von Möglichkeiten in PHP eine ganze Zahl in eine Zeichenfolge zu „konvertieren“.

Der traditionelle CS Weg wäre, die Variable als Zeichenfolge zu werfen

$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önnten auch die Vorteile von impliziter Typumwandlung und String-Interpolation PHP nehmen

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

Schließlich ähnlich wie oben, jede Funktion, die zu konvertieren und integer akzeptiert und gibt verwendet werden, eine Zeichenfolge könnte. Betrachten Sie das folgende

$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 letzte Option nicht empfehlen, aber ich habe Code in freier Natur gesehen, der auf diesem Verhalten verlassen, so dachte ich, es entlang passieren würde.

Alle diese Antworten sind groß, aber sie alle zurückkehren Sie einen leeren String, wenn der Wert Null ist.

Versuchen Sie Folgendes:

$v = 0;

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

oder es könnte sein:

$string = (string)$intValue ; 

oder:

settype(&$intValue ,'string');  

Es gibt viele mögliche Umwandlung Möglichkeiten:

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

Sie können entweder den Zeitraum Operator und eine Zeichenfolge es verketten (und es wird Typ in einen String gegossen sein):

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

oder richtiger, können Sie einfach die ganze Zahl in eine Zeichenfolge eingeben werfen:

$integer = 93;
$stringedInt = (string) $integer;

Ich würde sagen, es hängt vom Kontext ab. strval () oder das Gußteil Operator (string) verwendet werden könnten, aber in den meisten Fällen wird darüber entscheiden, PHP, was ist gut für Sie, wenn Sie zum Beispiel mit echo oder printf ... eine kleine Anmerkung: die () muss einen String und wird keinen int zeigen:)

Wie hier die Antworten zeigt schön, ja, gibt es mehrere Möglichkeiten. Doch in PHP müssen Sie nur selten wirklich das tun. Die „dogmatisch“ PHP zu schreiben, ist auf der Sprache der losen Typisierungssystem angewiesen, die transparent die Art zwingen wird je nach Bedarf. Bei ganzzahligen Werten ist dies in der Regel ohne Probleme. Sie sollten sehr vorsichtig sein mit Gleitkommazahlen, though.

Sie können einfach verwenden Sie die folgende:

$intVal = 5;
$strVal = trim($intVal);
$amount = 2351.25;
$str_amount = "2351.25";

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

So das Echo wird return string

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

ist schneller als

$integer = 93;
$stringedInt = $integer."";
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top