567 Stimmen

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

Wie konvertiere ich den Wert einer PHP-Variable in einen String?

Ich suchte nach etwas Besserem als der Verkettung mit einer leeren Zeichenfolge:

$myText = $myVar . '';

Wie die ToString() Methode in Java oder .NET.

28voto

opensas Punkte 56212

Sie sind auf der Suche nach strval :

string strval ( mixed $var )

Ermittelt den String-Wert einer Variablen. Siehe die Dokumentation zu string für weitere Informationen zur Konvertierung in Zeichenkette.

Diese Funktion führt keine Formatierung durch auf den zurückgegebenen Wert. Wenn Sie einen numerischen Wert als String formatieren Wert als Zeichenkette zu formatieren, lesen Sie bitte sprintf() oder number_format().

18voto

Für Primitive verwenden Sie einfach (string)$var oder drucken Sie diese Variable gleich aus. PHP ist eine dynamisch typisierte Sprache und die Variable wird sofort in einen String umgewandelt.

Wenn Sie Objekte in Zeichenketten umwandeln wollen, müssen Sie Folgendes definieren __toString() Methode, die einen String zurückgibt. Diese Methode darf keine Ausnahmen auslösen.

15voto

Mark Biek Punkte 140395

Wenn Sie es in Anführungszeichen setzen, sollte es funktionieren:

$myText = "$myVar";

11voto

Daan Punkte 7235

Ich denke, es ist erwähnenswert, dass Sie jede Ausgabe abfangen können (wie print_r , var_dump ) in einer Variablen mit Hilfe der Ausgabepufferung:

<?php
    ob_start();
    var_dump($someVar);
    $result = ob_get_clean();
?>

Dank an: Wie kann ich das Ergebnis von var_dump in einem String festhalten?

7voto

Yauhen Yakimovich Punkte 12897

Zusätzlich zu der von Thomas G. Mayfield gegebenen Antwort:

Wenn Sie dem Link zum String Casting Manual folgen, gibt es einen Sonderfall, der sehr wichtig zu verstehen ist:

(string) ist vorzuziehen, insbesondere wenn Ihre Variable $a ein Objekt ist, denn PHP folgt dem Casting Protokoll entsprechend seinem Objektmodell durch den Aufruf __toString() magische Methode (falls eine solche in der Klasse definiert ist, von der $a instanziert wird).

PHP macht etwas Ähnliches wie

function castToString($instance) 
{ 
    if (is_object($instance) && method_exists($instance, '__toString')) {
        return call_user_func_array(array($instance, '__toString'));
    }
}

El (Zeichenfolge) Casting-Operation ist eine empfohlene Technik für die PHP5+ Programmierung, die den Code objektorientierter macht. IMO ist dies ein schönes Beispiel für die Ähnlichkeit (oder den Unterschied) des Designs zu anderen OOP-Sprachen wie Java/C#/etc., d.h. auf seine eigene, spezielle PHP-Art (wann immer es zum Guten oder zum Schlechten ist).

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