PHP: Befehle zur Ausgabe - echo, print und co.
Die meist verwendete Variante um in PHP Text und Variablen auszugeben ist die Funktion echo. Es gibt allerdings viele weitere Funktionen, mit denen in PHP etwas ausgegeben werden kann. Dies können Alternativen wie zum Beispiel print sein, Funktionen zum Darstellen von Arrays am Bildschirm wie print_r oder var_dump, sowie Funktionen die bei der Ausgabe Text direkt ersetzen wie printf.
echo und print
Sie haben beide die selbe Funktion und sind mehr ein Sprachkonstrukt als eine herkömmliche Funktion. Meist verwendet man sie um normalen Text oder Variablen auszugeben.
echo 'Foo';
echo ("bar");
echo $foo;
print ('foo');
print "bar";
print $bar;
print_r
Gibt eine Variable rekursiv aus, egal ob es sich um einen String (Text), Integer (Zahl) oder ein Array (Datenfeld, ein- oder mehrdimensional) handelt. Es wird als normale Funktion verwendet, meist beim Debuggen.
$werte = array('foo', 'bar', 'foobar');
print_r($werte);
Die Ausgabe sieht dann wie folgt aus (im Quelltext):
Array
(
[0] => foo
[1] => bar
[2] => foobar
)
var_dump
Arbeitet wie print_r, gibt also eine beliebige Variable egal welchen Typs aus. Der Unterschied besteht darin, dass var_dump auch die Länge der einzelnen Werte, sowie den Datentyp mit ausgibt. Wird ebenfalls meist beim Debuggen verwendet.
$werte = array('foo', 'bar', 'foobar');
var_dump($werte);
Die Ausgabe sieht dann wie folgt aus (Quelltext):
array(3) {
[0]=>string(3) "foo"
[1]=>string(3) "bar"
[2]=>string(6) "foobar"
}
printf
Dient der Ausgabe von Text, gemischt mit Variablen. Es wird zuerst das Rohgerüst des auszugebenden Textes mit Platzhaltern in String-Form erstellt (erstes Argument), gefolgt von den Werten (zweites bis xtes Argument) die an den zuvor vergebenen Platzhaltern eingefügt werden sollen. Die Platzhalter sind unterschiedlich, je nachdem wie die Werte die eingefügt werden sollen anzusehen sind (string, integer, ...)
$jahre = 24;
$name = 'Markus';
$ort = 'Salzburg';
$text1 = 'Ich bin %d Jahre, heiße %s und wohne in %s.';
$text2 = 'Ich wohne in %3$s, bin %1$d Jahre, heiße %2$s.';
printf($text1, $jahre, $name, $ort);
printf($text2, $jahre, $name, $ort);
Das "%d" steht für eine positive Ganzzahl, das "%s" für einen String. Beim ersten printf Aufruf wird der Text aus der Variable $text1 übergeben und drei weitere Argumente, die in der gleichen Reihenfolge zu übergeben sind wie die Platzhalter in $text1. Bei dem zweiten printf Aufruf sind die übergebenen Variablen nach $text2 in der selben Reihenfolge wie beim ersten printf Aufruf, jedoch schauen die Platzhalter etwas anders aus. %1$d ist das erste Argument ($jahre), das als integer behandelt werden soll. %2$s ist das zweite Argument ($name), das als string behandelt werden soll. %3$s ist das dritte Argument ($ort), das als string behandelt werden soll. Eine genaue Beschreibung der Argumente findet man im PHP-Manual bei der Funktion sprintf. Die Ausgabe des obigen Beispielt würde wie folgt aussehen.
Ich bin 24 Jahre, heiße Markus und wohne in Salzburg.
Ich wohne in Salzburg, bin 24 Jahre, heiße Markus.
Jetzt gilt es nur noch die beste Methode für sich selbst zu finden, die Entscheidung kann einem leider nicht abgenommen werden. Ich wünsche euch allen viel Spaß beim Ausprobieren!
Markus