Text ausgeben mit Php
Sie befinden sich: Home > Php
> Text ausgeben mit Php
In diesen Artikel möchten wir Ihnen erklären wie Sie mit "echo" und "print"
arbeiten in Php. Es wird im zweiten Teil erklärt, was ein Print-Befehl ist und
dann der Unterschied zwischen Echo und Print dargestellt. Grundsätzlich erzeugen
beide Befehle eine Ausgabe, die Anwendung jedoch ist von Fall zu Fall zu
entscheiden. Der Text, der ausgegeben werden soll, muss natürlich in
Anführungsstrichen stehen, da der Server sonst versucht, ihn als Php-Befehl zu
interpretieren. Dieses Vorgehen wird Quoten oder Quoting genannt.
Bei den Anführungsstrichen gibt es zwei verschiedene:
- einfach '
- doppelt "
Es gibt auch einen Unterschied zweischen den beiden:
- Bei den doppelten Anführungsstrichen versucht der Server, den Text zu
interpretieren.
- Bei den den einfachen hingegen behandelt er ihn nicht
speziell, sondern gibt ihn direkt aus.
Beispiel:
1 <?php
2 $name="Nico";
3 print ('Mein Name ist $name.\n');
// Ausgabe: Mein Name ist $name.
4
5 print
("Mein Name ist $name.\n") // Ausgabe: Mein Name ist Nico. << mit
anschließendem Zeilenumbruch
6 ?>
|
Man kann bei den Print und Echo die Klammern weglassen. Da Print und Echo
keine wirkliche Funktion ist (sondern ein Sprachkonstrukt), weshalb Sie beim
Aufruf nicht unbedingt Klammern benutzen müssen.
Beispiel:
1 <?php
2 print "print() arbeitet auch ohne
einschließende Klammern."; // Ausgabe: print() arbeitet auch
ohne einschließende Klammern.
3 ?>
|
Wenn man einen Textumbruch machen möchte, muss man eine Html Befehl
verwenden.
Beispiel:
1 <?php
2 print "Auch wenn dieser Text
3 über mehrere Zeilen im Quelltext
verteilt ist,
4 wird sie in der Ausgabe einzeilig
erscheinen";
5
6 print "Ebenso wenig helfen hier Steuerzeichen wie \n.
Die Ausgabe erscheint wieder Fortlaufend.";
7 ?>
|
Wenn Sie ein Anführungszeichen ausgeben möchten, müssen Sie ein Slash \ vor
den Anführungszeichen setzen.
Beispiel:
1 <?php
2 print "Anführungszeichen setzt
man \"wie hier beschrieben\".";
3 ?>
|
Sie können auch Variablen per Print und Echo
ausgeben.
Beispiel:
1 <?php
2 $foo = "foobar";
3 print "foo ist $foo"; // foo ist foobar
4 ?>
|
Mit Print oder Echo können Sie auch ein Array
ausgeben, wie Sie mit ein Array
arbeiten erklären wir in einen Spätern Artikel.
Beispiel:
1 <?php
2 // Das ganze für Arrays, wichtig
sind die geschweiften Klammern
3 $bar = array("value" => "foo");
4
5 print "Das ist {$bar['value']} !"; // Das ist foo !
6
7 // Zu beachten ist die Verwendung
von
einfachen Anführungszeichen
8 // diese geben nicht den Wert der
Variablen
aus sondern deren
9 //eigentlichen Namen
10
11 print 'foo ist $foo'; // foo ist $foo
12 ?>
|
Soll nur der Inhalt einer Variablen angegeben werden, kann auf
Anführungszeichen oder Klammern verzichtet werden.
Beispiel:
1 <?php
2 print $foo; // foobar
3 ?>
|
Ersetzt man in dem oben Aufgeführten Quelltext das "print" durch den echo-
Befehl bleibt die Ausgabe unverändert.
Der wesentliche Unterschied besteht in der Tatsache das es sich bei "print"
um eine reale Funktion handelt. Dies ist dann wichtig wenn man einen
Rückgabewert der Ausgabe erwartet. Print gibt bei erfolgreicher Ausführung immer
1 zurück. Der "echo" Befehl gibt keine Werte zurück.
Ein print() Beispiel:
1 <?php
2 $variable==0 ? print "<i>variable ist 0</i>" :
print "<i>variable ist nicht 0</i>";
3 ?>
|
Augabe des print() Beispiel:
variable ist 0
Dieser kurze Quelltext wertet eine Bedingung aus, und führt einen der beiden
print -Befehle aus. Ersetzt man nun das "print" durch ein "echo" kann die
Bedingung nicht geprüft werden, da PHP aus syntaktischen Gründen zwischen den
Zeichen ? : ; einen Wert erwartet, den "echo" nicht liefern kann. Je nach PHP
Version wird der Fehler als Parser Error ausgegeben, ggf. wird diese
Fehlermeldung mit einem Hinweis auf "T_ECHO" erweitert.
Ein echo() Beispiel:
1 <?php
2 $variable==0 ? echo "<i>variable ist 0</i>" :
echo "<i>variable ist nicht 0</i>";
3 ?>
|
Augabe des echo() Beispiel:
Parse error: parse error, unexpected T_ECHO in ....... on line 2
Auf der Internetseite php.net wird bezüglich des print Befehls darauf
hingewiesen, dass es sich nicht um eine reale Funktion im allgemeinen handelt,
sondern um ein so genanntes sprachliches Konstrukt. Dies erklärt die Möglichkeit
Argumente an "print" zu übergeben, ohne einschließende Klammern verwenden zu
müssen.
Eine Verbesserung der Performance eines Scripts, hinsichtlich der
Geschwindigkeit bei der Ausführung beider Ausdrücke im Vergleich zueinander, ist
im Normalfall nicht zu erwarten.
|