Wie konvertiere ich den Wert einer PHP-Variablen in einen String?
Ich habe nach etwas Besserem gesucht als der Konkatenation mit einem leeren String:
$myText = $myVar . '';
Ähnlich der ToString()
Methode in Java oder .NET.
Wie konvertiere ich den Wert einer PHP-Variablen in einen String?
Ich habe nach etwas Besserem gesucht als der Konkatenation mit einem leeren String:
$myText = $myVar . '';
Ähnlich der ToString()
Methode in Java oder .NET.
Du suchst nach strval:
string strval ( mixed $var )
Holen Sie sich den Zeichenfolgenwert einer Variablen. Weitere Informationen zur Konvertierung in eine Zeichenfolge finden Sie in der Dokumentation zu string.
Diese Funktion führt keine Formatierung des zurückgegebenen Werts durch. Wenn Sie nach einer Möglichkeit suchen, einen numerischen Wert als Zeichenfolge zu formatieren, sehen Sie bitte sprintf() oder number_format().
Das ist tatsächlich sehr hilfreich, denn ich wollte alle Zahlen in Strings umwandeln, ohne eine benutzerdefinierte Rückruffunktion zu verwenden. $strings = array_map('strval', $my_numbers);
Für Primitive nutzen Sie einfach (string)$var
oder drucken Sie diese Variable sofort aus. PHP ist eine dynamisch typisierte Sprache und die Variable wird automatisch in einen String umgewandelt.
Wenn Sie Objekte in Strings umwandeln möchten, müssen Sie die Methode __toString()
definieren, die einen String zurückgibt. Diese Methode darf keine Ausnahmen werfen.
Ich denke, es ist erwähnenswert, dass Sie jedes Ergebnis (wie print_r
, var_dump
) in einer Variable speichern können, indem Sie Pufferung des Ergebnisses verwenden:
Dank an: Wie kann ich das Ergebnis von var_dump in einen String erfassen?
Es ist erwähnenswert, dass Sie das mit print_r nicht benötigen. Verwenden Sie einfach das Überschreiben, um als Zeichenkette zurückzugeben.
Abgesehen von der Antwort von Thomas G. Mayfield:
Wenn Sie dem Link zum String-Casting-Handbuch folgen, gibt es einen besonderen Fall, den es zu verstehen gilt:
(string) Cast ist besonders empfehlenswert, insbesondere wenn Ihre Variable $a ein Objekt ist, da PHP das Casting-Protokoll gemäß seinem Objektmodell befolgt, indem es die __toString() Magie-Methode aufruft (falls diese in der Klasse definiert ist, von der $a instanziiert ist).
PHP macht etwas Ähnliches wie
function castToString($instance)
{
if (is_object($instance) && method_exists($instance, '__toString')) {
return call_user_func_array(array($instance, '__toString'));
}
}
Die (string) Casting-Operation ist eine empfohlene Technik für die PHP5+ Programmierung, die den Code objektorientierter macht. Meiner Meinung nach ist dies ein schönes Beispiel für Designähnlichkeit (Unterschied) zu anderen OOP-Sprachen wie Java/C# usw., d.h. auf seine eigene spezielle PHP-Weise (ob es gut ist oder nicht).
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
3 Stimmen
Ich würde
json_encode($myText)
verwenden. Ich habe festgestellt, dass die vorgeschlagenen Lösungenprint_r
und(string)var
gut für skalare Werte und einfache Objekte funktionieren. Für komplexe Variablen, Klassen oder Objekte ziehe ich, wenn ein vollständiges__toString()
nicht definiert ist,json_encode
vor.