Gibt es eine Möglichkeit, eine Ganzzahl in PHP in eine Zeichenfolge umzuwandeln?
strval()
ändert das auch nicht $variable
intern.
Gibt es eine Möglichkeit, eine Ganzzahl in PHP in eine Zeichenfolge umzuwandeln?
strval()
ändert das auch nicht $variable
intern.
Antworten:
Mit der strval()
Funktion können Sie eine Zahl in eine Zeichenfolge konvertieren.
Aus Wartungssicht ist es offensichtlich, was Sie versuchen, und nicht einige der anderen esoterischeren 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";
strval(0.999999997)
return 1
.
Es gibt viele Möglichkeiten, dies zu tun.
Zwei Beispiele:
$str = (string) $int;
$str = "$int";
Weitere Informationen finden Sie im PHP-Handbuch zum Jonglieren von Typen .
0
in ist ""
möglicherweise nicht schlecht. es hängt wirklich von der Anwendung ab. Das heißt, Sie machen einen guten Punkt.
$foo = 5;
$foo = $foo . "";
Jetzt $foo
ist eine Zeichenfolge.
Aber vielleicht möchten Sie sich an das Casting gewöhnen. Da Casting der richtige Weg ist, um so etwas zu erreichen:
$foo = 5;
$foo = (string)$foo;
Eine andere Möglichkeit besteht darin, in Anführungszeichen zu setzen:
$foo = 5;
$foo = "$foo"
Es gibt verschiedene Möglichkeiten, eine Ganzzahl in PHP in eine Zeichenfolge zu "konvertieren".
Die traditionelle Art der Informatik wäre, die Variable als Zeichenfolge zu konvertieren:
$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 Typkonvertierung und Zeichenfolgeninterpolation 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";
Schließlich kann ähnlich wie oben jede Funktion, die eine Zeichenfolge akzeptiert und zurückgibt, zum Konvertieren und zur 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 letzte Option nicht empfehlen, aber ich habe Code in freier Wildbahn gesehen, der sich auf dieses Verhalten stützte, und dachte, ich würde ihn weitergeben.
Alle diese Antworten sind großartig, aber sie alle geben Ihnen eine leere Zeichenfolge zurück, wenn der Wert Null ist.
Versuche Folgendes:
$v = 0;
$s = (string)$v ? (string)$v : "0";
Sie können entweder den Punktoperator verwenden und eine Zeichenfolge damit verketten (und sie wird in eine Zeichenfolge umgewandelt):
$integer = 93;
$stringedInt = $integer . "";
Oder genauer gesagt, Sie können einfach die Ganzzahl in eine Zeichenfolge umwandeln:
$integer = 93;
$stringedInt = (string) $integer;
Wie die Antworten hier gut zeigen, gibt es mehrere Möglichkeiten. In PHP müssen Sie dies jedoch selten tun. Die "dogmatische Art", PHP zu schreiben, besteht darin, sich auf das lose Schreibsystem der Sprache zu verlassen, das den Typ nach Bedarf transparent erzwingt. Bei ganzzahligen Werten ist dies normalerweise problemlos möglich. Sie sollten jedoch sehr vorsichtig mit Gleitkommawerten sein.
strlen(12345);
aber nicht für $x = 12345; echo $x[2];
Alle diese Casting-Funktionen sind sehr nützlich und viele Programmierer überprüfen ihre Typen immer mehr.
Ich würde sagen, es hängt vom Kontext ab. strval () oder der Casting-Operator (string) können verwendet werden. In den meisten Fällen entscheidet PHP jedoch, was für Sie gut ist, wenn Sie es beispielsweise mit echo oder printf verwenden ...
Eine kleine Anmerkung: die () benötigt einen String und zeigt kein int an :)
$amount = 2351.25;
$str_amount = "2351.25";
$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount); //string
So wird das Echo sein Zeichenfolge .
$integer = 93;
$stringedInt = $integer.'';
ist schneller als
$integer = 93;
$stringedInt = $integer."";
echo
es sind (wird im sogenannten Zeichenfolgenkontext verwendet ).