567 Stimmen

PHP-Äquivalent von .NET/Java's toString()

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.

3 Stimmen

Ich würde json_encode($myText) verwenden. Ich habe festgestellt, dass die vorgeschlagenen Lösungen print_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.

1voto

Brian Warshaw Punkte 21916

Wenn Sie etwas anderes als einfache Typen wie Integer oder Boolesche Werte konvertieren, müssten Sie Ihre eigene Funktion/Methode für den Typ schreiben, den Sie konvertieren möchten, sonst wird PHP einfach den Typ ausgeben (wie Array, GoogleSniffer oder Bidet).

0voto

mikikg Punkte 1460

Versuchen Sie diesen etwas seltsamen, aber funktionierenden Ansatz, um den textuellen Teil von stdClass in den String-Typ umzuwandeln:

$my_std_obj_result = $SomeResponse->return->data; // Spezifisch für das Objekt/die Implementierung

$my_string_result = implode ((array)$my_std_obj_result); // Durchführung der Konvertierung

0voto

Archimedes Trajano Punkte 28004

Für Objekte kann es sein, dass du den Cast-Operator nicht verwenden kannst. Stattdessen benutze ich die Methode json_encode().

Zum Beispiel wird das Folgende Inhalte im Fehlerprotokoll ausgeben:

error_log(json_encode($args));

0voto

dılo sürücü Punkte 2737

__toString-Methode oder (string) Cast

$string=(string)$variable;  // erzwingt die Umwandlung in einen String

Sie können ein Objekt als Zeichenfolge behandeln

class Foo
{

  public function __toString()
  {
     return "foo";
  }

}

echo new Foo(); //foo

Außerdem gibt es noch einen anderen Trick, angenommen, Sie haben eine Integer-Variable, die in eine Zeichenfolge umgewandelt werden soll

$string=''.$intvariable;

-1voto

ling Punkte 8381

Ich benutze variableToString. Es handhabt jeden PHP-Typ und ist flexibel (du kannst es erweitern, wenn du möchtest).

CodeJaeger.com

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.

Powered by:

X