W3docs

print()

Unser Artikel erklärt die PHP-Funktion print(), mit der eine Zeichenkette ausgegeben wird. Diese Funktion ähnelt der echo()-Funktion in PHP.

print ist ein PHP-Sprachkonstrukt, das eine Zeichenkette ausgibt. Es ist eine der häufigsten Methoden, um Text an den Browser oder das Terminal zu senden, neben echo. Diese Seite behandelt die Syntax von print, die eine Eigenschaft, die es von echo unterscheidet (seinen Rückgabewert), das Verhalten von Klammern und typische Fallstricke.

Ein Sprachkonstrukt – keine Funktion – bedeutet, dass print Teil der Sprachgrammatik selbst ist. In der Praxis ist das der Grund, warum man print "x" ohne Klammern schreiben kann, genauso wie bei echo.

Syntax

int print(string $expression)

print nimmt ein einziges Argument, $expression, das in eine Zeichenkette umgewandelt und in die Ausgabe geschrieben wird. Es gibt immer 1 zurück, sodass es in größeren Ausdrücken verwendet werden kann, wo echo nicht möglich wäre.

Da Klammern optional sind, sind alle folgenden Schreibweisen gültig:

print "Hello, World!";
print("Hello, World!");
print "Sum is " . (2 + 3);

Ein einfaches Beispiel

php— editable, runs on the server

Die Ausgabe lautet:

Hello, World!

print und echo sehen fast identisch aus, aber es gibt zwei echte Unterschiede:

echoprint
Rückgabewertkeiner (gibt nichts zurück)immer 1
Mehrere Argumenteja — echo $a, $b;nein — nur ein Argument
Geschwindigkeitgeringfügig schnellergeringfügig langsamer

Die Unterschiede sind minimal, daher entscheiden sich die meisten Projekte für eines und bleiben dabei. Verwende echo, wenn du mehrere Werte gleichzeitig ausgeben möchtest; greife auf print nur zurück, wenn du einen Rückgabewert innerhalb eines Ausdrucks benötigst. Einen direkten Vergleich findest du unter echo und print in PHP.

<?php
// echo can take several arguments separated by commas
echo "a", "b", "c";   // abc

// print cannot — this is a syntax error:
// print "a", "b";
?>

Den Rückgabewert nutzen

Da print den Wert 1 zurückgibt, kann es dort verwendet werden, wo ein Ausdruck erwartet wird. Das ist gelegentlich praktisch in einer Bedingung oder einem Ternary-Operator, wo echo nicht kompilieren würde:

<?php
$loggedIn = true;

// Ternary: the print runs and evaluates to 1, but we only care about the side effect.
$loggedIn
    ? print("Welcome back!\n")
    : print("Please sign in.\n");
?>

Ausgabe:

Welcome back!

Dieses Muster ist in echtem Code selten – ein einfaches if/else mit echo ist klarer – aber es erklärt, warum print überhaupt einen Wert zurückgibt.

Variablen und HTML ausgeben

print gibt jede Zeichenkette aus, die du erstellst, einschließlich HTML. Das Interpolieren von Variablen in doppelt gequoteten Zeichenketten ist die idiomatische Methode, Text und Daten zu mischen:

<?php
$user = "Ada";
print "<p>Hello, $user!</p>\n";
print 'Single quotes do NOT interpolate: $user' . "\n";
?>

Ausgabe:

<p>Hello, Ada!</p>
Single quotes do NOT interpolate: $user

Beachte den Unterschied: Doppelte Anführungszeichen ("...") expandieren $user, einfache Anführungszeichen ('...') geben ihn wörtlich aus.

Häufige Fallstricke

  • print ist nicht für Arrays oder Objekte gedacht. Das Übergeben eines Arrays gibt das wörtliche Wort Array aus und löst eine Hinweismeldung aus. Um strukturierte Daten zu überprüfen, verwende stattdessen print_r() oder var_dump().
  • Die Ausgabe escapet nichts. print schreibt reinen Text. Wenn du Benutzereingaben in HTML ausgibst, schließe sie in htmlspecialchars() ein, um XSS zu vermeiden.
  • Für formatierte Ausgaben bevorzuge printf. Wenn du Auffüllung, Zahlenformatierung oder Platzhalter benötigst, sind printf() und sprintf() die richtigen Werkzeuge.

Zusammenfassung

print gibt eine einzelne Zeichenkette aus, gibt immer 1 zurück und akzeptiert optionale Klammern. Es ist für die alltägliche Ausgabe austauschbar mit echo; der einzige Grund, es zu bevorzugen, ist wenn du seinen Rückgabewert innerhalb eines Ausdrucks benötigst. Zum Debuggen von Arrays und Objekten wechsle zu print_r() oder var_dump(); für formatierte Zeichenketten verwende printf().

Übungen

Übung
Was sind laut dem Artikel auf w3docs die Möglichkeiten, eine Zeichenkette in PHP auszugeben?
Was sind laut dem Artikel auf w3docs die Möglichkeiten, eine Zeichenkette in PHP auszugeben?
Was this page helpful?