PHP unterscheidet verschiedene Arten von Werten: Zeichenketten dienen z.B. der Darstellung von Texten, während mit numerischen Werten gerechnet werden kann. Von Zeit zu Zeit benötigt man eine Umwandlung von numerischen Werten in Zeichenketten, um eine Zahl leserlich - etwa mit einer bestimmten Zahl von Nachkommastellen - darstellen zu können. In anderen Situationen benötigt man als Programmierer auch Ausgaben in binärer oder hexadezimaler Notation. All diese Umwandlungen können mit der Funktion sprintf() bewerkstelligt werden.
Der Syntax:
sprintf(Zeichenkette format, Wert1, ...)
Der erste Parameter legt fest, wie das Ergebnis formatiert werden soll, die übrigen Parameter stellen die Werte dar, die umgewandelt werden sollen. Der Aufbau des ersten Parameters, der Format-Zeichenkette, besteht aus beliebigen Zeichen, wobei das Zeichen "%" (Prozent) eine besondere Bedeutung hat: Es leitet eine Format-Anweisung ein, die festlegt, wie ein Parameter formatiert wird. Zu jeder Format-Anweisung im ersten Parameter gehört also ein weiterer Parameter, der an sprintf() übergeben werden muss.
Ein Beispiel soll die Benutzung von sprintf() demonstrieren:
<?php
$string = '23456.57';
echo sprintf("%d", $string);
?>
Die Variable $string wird mit der Darstellung einer Dezimalzahl mit zwei Nachkommastellen belegt. Anschließend wird sprintf() mit dem Format "%d" und der Variablen $string aufgerufen. Anhand der Angabe "%d" weiß sprintf(), dass der zweite Parameter als Ganzahl (also ohne Nachkommastellen) formatiert werden soll. Das Ergebnis des Funktionsaufrufs lautet also "23456". Wie oben erwähnt, kann die Format-Zeichenkette aber auch andere Zeichen enthalten, diese werden ohne Konvertierung in die Ergebnis-Zeichenkette kopiert. Wenn Sie in dem Beispiel oben die Format-Zeichenkette gegen "Eine Zahl %d!" austauschen, erhalten Sie als Ergebnis die Zeichenkette "Eine Zahl 23456!".
Außer dem Buchstaben "d" können noch viele weitere Format-Angaben auf das Prozentzeichen folgen. Die folgende Auflistung gibt einen kurzen Überblick über die wichtigsten Angaben:
d - Formatierung als Ganzzahl,
f - Formatierung als reelle Zahl mit Nachkommastellen,
x - Formatierung als Ganzzahl in hexadezimaler Notation,
s - Formatierung als Zeichenkette.
Die letzte Angabe behandelt den entsprechenden zu formatierenden Parameter als Zeichenkette. Wenn dieser Wert eine Zeichenkette ist, wird er praktisch ohne Veränderung in den Rückgabewert kopiert, sollte dieser Wert allerdings eine Ganzzahl sein, wird diese zunächst in eine Zeichenkette umgewandelt und dann in die Ausgabe kopiert. Das folgende Beispiel illustriert die Verwendung der Format-Angabe "%s":
<?php
$string = 'Das ist ein String.';
echo sprintf("%s", $string);
?>
Auch in diesem Beispiel wird die variable $string mit einer Zeichenkette belegt, welche diesmal aber nicht wie eine Zahl aussieht. Entsprechend wurde die Format-Anweisung im Aufruf von sprintf() durch "%s" ersetzt. Das Ergebnis lautet in diesem Fall: "Das ist ein String.", also genau dem Wert, der in der ersten Zeile zugewiesen wurde.
Die Verwendung der weiteren Format-Angaben erlaubt auch Zusatzangaben zur genauen Steuerung des Formatierungsprozesses. Auf diese Weise können Ausgaben größerer Datenmengen auf Webseiten ohne großen Aufwand sehr leserlich gestaltet werden.