Suche nach als

Textketten ausgeben

Auf dieser Seite:

echo oder print

Was in PHP ausgegeben werden will muss in Anführungszeichen stehen ausser Zahlen mit denen gerechnet werden soll. echo und print sind keine richtigen Funktionen sondern es sind Konstrukte, darum kann die Klammer beim Aufruf weggelassen werden.

echo "..." und print "..."

Folgende Beispiele funktionieren mit 'echo' wie mit 'print' gleichermassen. Der Unterschied von 'print' zu 'echo' ist der, dass 'print' einen Wert zurück gibt (siehe am Ende der Seite).

<?php
 
echo "Textausgabe";   // Text
 
echo "<br /><b>Fetter Text</b><br />";  // Text und HTML
 
echo "Hallo \"Lehrling\"";  // Escapezeichen - beachte den backslash
 
echo "<br />";        // XML
 
echo 123 234;       // Operation - Zahlen ohne Anführungszeichen
 
echo "<br />";
 echo 
date("Y");       // Funktion
?>
Textausgabe
Fetter Text
Hallo "Lehrling"
357
2012

Strings und Variablen verketten

. und ,

Beispiel und Code:

<?php
# die Variablen (beachte die Leerzeichen):
$h "Ich heisse ";
$u " und";
$i " mein Name ist";
$name "Marcel Biefer";

# Variablen und Strings können durch Punkte verkettet werden
echo "$h$name$u$i"." "."$name".".";
echo 
"<br/>";

# Strings werden auch durch Kommas aneinandergefügt weil:
# normalerweise werden Argumente in Klammern von Funktionen durch Kommas getrennt,
# hier wirkt sich das so aus, als würden mehrere Argumente übergeben
echo "$h$name$u$i"," ","$name","."
echo 
"<br/>";

# dieses Beispiel geht auch ganz ohne Punkt und Komma
# falls Gänsefüsschen verwendet werden
echo "$h$name$u$i $name.";
echo 
"<br/>";

# handelt es sich nur um Variablen, braucht es keine Anführungszeichen, 
# nur den Punkt (Verkettungsoperator)
echo $h.$name.$u.$i.$name;
# aber der Leerschlag zwischen $i und $name und der Punkt wären Strings
?>
Ich heisse Marcel Biefer und mein Name ist Marcel Biefer.
Ich heisse Marcel Biefer und mein Name ist Marcel Biefer.
Ich heisse Marcel Biefer und mein Name ist Marcel Biefer.
Ich heisse Marcel Biefer und mein Name istMarcel Biefer

Einfache Anführungszeichen

'...' und "$..."

Die Art der Anführungszeichen hat einen Einfluss auf die Ausgabe. Wenn der String in 'einfachen Anführungszeichen' (Apostroph) steht, ist das Script schnell, weil nichts geparst wird. Variable und Escape-Zeichen werden nur in "doppelten Anführungszeichen" (Gänsefüsschen) geparst!

Darum sieht man hier die (ungeparsten) Variablen-Namen:

<?php
  
echo '$h$name$u$i $name.';
?>
$h$name$u$i $name.

Escape Zeichen

"\$ \n \t"

Zeilenumbruch im Quelltext erzeugen

Wenn ich mittels PHP etwas HTML-Code schreiben möchte, erzeuge ich einen Bandwurm im HTML Quelltext.
echo "<h2>Titel</h2><p>Absatz mit Text und einem Zeilenumbruch,<br />der zwar im Browser einen Zeilenumbruch erzeugt, aber nicht im Quellcode.</p>";
Das Zeichen n steht für 'neue Zeile', damit nicht ein normales n ausgegeben wird, muss ich es escapen:
\n
echo "<h2>Titel</h2>\n<p>Absatz mit Text und einem Zeilenumbruch,\n<br /> ...</p>";

Tabulator im Quelltext erzeugen

Die Gliederung macht den HTML Quelltext leserlich. Zum Einrücken brauche ich auch noch den Tabulator; das Zeichen t steht für 'Tabulator', damit nicht ein normales t ausgegeben wird, muss ich es escapen:
\t
echo "<h2>Titel</h2>\n\n<p>\n\tAbsatz mit Text ...\n\t<br />... \n</p>"; sieht etwa so aus:

<h2>Titel</h2>

<p>
  Absatz mit Text und einem Zeilenumbruch,
  <br />der auch im Quellcode gegliedert ist.
</p>

"\" \' \\"

Spezialzeichen schreiben

Das Selbe gilt bei den Zeichen " und ' und beim Backslash \:
echo "Gänsefüsschen müssen escaped werden: \"";
echo 'So geht\'s wieder';
echo "\\ schreibt nur einen Backslash";

Print hat Rückgabewert

Der Unterschied von 'print' zu 'echo' ist der, dass 'print' einen Wert zurück gibt.

Beispiel: 'print' gibt an die Variable '$druck' TRUE bzw. 1 zurück. Fragt man nun die Variable ab, wird das ersichtlich:

<?php
 $druck
=print(12+12);
 if (
$druck==TRUE) print " wurde gedruckt";
 print 
"<br />Der Wert von \$druck ist: $druck";
?>
24 wurde gedruckt
Der Wert von $druck ist: 1

Anders dagegen 'echo', das kann nur etwas ausgeben aber liefert keine Erfolgs- oder Fehlermeldung zurück

PHP Kurzform

<?=... ?>

In einer verkürzten Version (nur mal schnell eine Variable ausgeben) wird auf den Befehl echo verzichtet:

<?php $string="Ich bin die Kurzform"; ?> Variable ...

<?=$string ?> ... nur mal schnell ausgeben!

Je nach Serverkonfiguration läuft dies aber nicht!


Valid XHTML 1.0 Check den Code.

Zeilen umbrechen >> << String:
Ich bin hier: > PHP Lehrling >>> Textketten ausgeben
 
HTML und XHTML | CSS | JavaScript und DHTML | PHP und MySQL | Andere Sprachen
Letzter Update: 10.05.2012