# vprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

vprintf — Gibt einen formatierten String aus

### Beschreibung

vprintf(string `$format`, array `$values`): int

Zeigt die Werte eines Arrays als formatierten String entsprechend der `format`-Anweisungen (siehe Beschreibung der Formatierungsmöglichkeiten der Funktion sprintf()) an.

Arbeitet wie printf(), akzeptiert jedoch ein Array anstelle mehrerer Werte als Argument.

### Parameter-Liste

`format`

  Der Formatstring setzt sich aus keiner oder mehreren Anweisungen zusammen: Normale Zeichen (abgesehen von `%`), die direkt in das Ergebnis kopiert werden und Konvertierungsanweisungen, die jeweils ihre eigenen Parameter abrufen.

  Eine Konvertierungsanweisung folgt diesem Prototypen: `%[ArgNum$][Flags][Weite][.Präzision]Spezifizierer`.

  ##### ArgNum

  Eine Ganzzahl gefolgt von einem Dollarzeichen `$`, die die Nummer des Arguments angibt, das für die Konversion verwendet werden soll.

  ##### Flags

  Flag | Beschreibung
  --- | ---
  `-` | Linksbündig innerhalb der angegebenen Feldbreite; Rechtsbündig ist der Standard
  `+` | Positive Zahlen mit einem Pluszeichen `+`; Standardmäßig werden nur negative Zahlen mit negativen Vorzeichen ausgegeben
  `` (Leerzeichen) | Füllt das Ergebnis mit Leerzeichen auf. Dies ist der Standard.
  `0` | Füllt nach Links mit Nullen auf. Mit dem `s`-Spezifizierer kann dies auch nach rechts mit Nullen auffüllen.
  `'`(Zeichen) | Füllt das Ergebnis mit dem angegebenen Zeichen auf.

  ##### Breite

  Entweder eine Ganzzahl die angibt, wie viele Zeichen (Minimum) das Konvertierungsergebnis haben soll oder `*`. Wenn `*` verwendet wird, wird die Breite als zusätzlicher ganzzahliger Wert angegeben, der bestimmt, wie viele Zeichen vor dem durch den Spezifizierer formatierten Wert stehen sollen.

  ##### Genauigkeit

  Ein Punkt `.`, optional gefolgt von einer Ganzzahl oder `*`, dessen Bedeutung vom Spezifizierer abhängt:

  - Für die Spezifizierer `e`, `E`, `f` und `F`: Dies stellt die Anzahl der Nachkommastellen an, die nach dem Dezimaltrennzeichen ausgegeben werden soll (Standardmäßig ist dies 6).
  - Für die Spezifizierer `g`, `G`, `h` und `H`: Die maximale Anzahl der auszugebenenden signifikanten Nachkommastellen.
  - Für den `s` Spezifizierer: Verhält sich wie ein Abschneidepunkt, der eine maximale Anzahl an Zeichen in der Zeichenkette angibt.

  > Hinweis: Wenn der Punkt ohne einen expliziten Wert für die Genauigkeit angegeben wird, wird 0 angenommen. Wenn `*` verwendet wird, wird die Genauigkeit als zusätzliche Ganzzahl vor dem durch den Bezeichner formatierten Wert angegeben.

  Spezifizierer
  Spezifizierer | Beschreibung
  --- | ---
  `%` | Ein Prozentzeichen. Kein Parameter nötig.
  `b` | Der Parameter wird als Ganzzahl behandelt und als Binärzahl ausgegeben.
  `c` | Der Parameter wird als Ganzzahl behandelt und als Zeichen aus dem ASCII-Zeichensatz ausgegeben.
  `d` | Der Parameter wird als Ganzzahl behandelt und als (vorzeichenbehaftete) Dezimalzahl ausgegeben.
  `e` | Der Parameter wird als Zahl in wissenschaftlicher Schreibweise (z. B. 1.2e+2) behandelt.
  `E` | Wie der Spezifizierer `e`, aber schreibt einen Großbuchstaben (z. B. 1.2E+2).
  `f` | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl ausgegeben (abhängig von der Locale).
  `F` | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl (unabhängig von der Locale) ausgegeben.
  `g` | Generelles Format. Sei P gleich der Genauigkeit, wenn nicht Null, 6, wenn die Genauigkeit nicht angegeben ist, oder 1 wenn die Genauigkeit Null ist. Dann, wenn eine Konvertierung mittels E einen Exponenten von X hätte: Wenn P > X ≥ −4, erfolgt die Konvertierung mit Spezifizierer f und Genauigkeit P - (X + 1), andernfalls mit Spezifizierer e und Genauigkeit P - 1.
  `G` | Wie der Spezifizierer `g`, aber es wird `E` und `f` verwendet.
  `h` | Wie der Spezifizierer `g`, aber es werden `F` verwendet. Verfügbar ab PHP 8.0.0.
  `H` | Wie der Spezifizierer `g`, aber es werden `E` und `F` verwendet. Verfügbar ab PHP 8.0.0.
  `o` | Der Parameter wird als Ganzzahl betrachtet und als Oktalzahl ausgegeben.
  `s` | Der Parameter wird als Zeichenkette betrachtet und ausgegeben.
  `u` | Der Parameter wird als Ganzzahl betrachtet und als vorzeichenlose Dezimalzahl ausgegeben.
  `x` | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Kleinbuchstaben) ausgegeben.
  `X` | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Großbuchstaben) ausgegeben.

  Warnung

  Der Spezifizierer `c` ignoriert Auffüllung und Weite.

  Warnung

  Der Versuch, die Kombination aus Zeichenketten mit Weite-Spezifizierern und Zeichensätzen die mehr als ein Byte pro zeichen erwarten zu verwenden, führt zu unvorhersehbaren Ergebnissen.

  Variablen werden auf einen für den Spezifizier passenden Typen umgewandelt:

  Typ-Behandlung
  Typ | Spezifizierer
  --- | ---
  string | `s`
  int | `d`, `u`, `c`, `o`, `x`, `X`, `b`
  float | `e`, `E`, `f`, `F`, `g`, `G`, `h`, `H`

`values`

### Rückgabewerte

Gibt die Länge des Ausgabestrings zurück.

### Fehler/Exceptions

Wenn die Anzahl der Argumente Null ist, wird seit PHP 8.0.0 ein ValueError ausgelöst. Vor PHP 8.0.0 wurde stattdessen eine `E_WARNING` ausgegeben.

Wenn `[width]` kleiner als Null oder größer als `PHP_INT_MAX` ist, wird seit PHP 8.0.0 ein ValueError ausgelöst. Vor PHP 8.0.0 wurde stattdessen eine `E_WARNING` ausgegeben.

Wenn `[precision]` kleiner als Null oder größer als `PHP_INT_MAX` ist, wird seit PHP 8.0.0 ein ValueError ausgelöst. Vor PHP 8.0.0 wurde stattdessen eine `E_WARNING` ausgegeben.

Wenn weniger Argumente angegeben werden als nötig, wird seit PHP 8.0.0 ein ValueError ausgelöst. Vor PHP 8.0.0 wurde stattdessen `false` zurückgegeben und eine `E_WARNING` ausgegeben.

### Changelog

Version | Beschreibung
--- | ---
8.0.0 | Diese Funktion gibt bei Auftreten eines Fehlers nicht mehr `false` zurück.
8.0.0 | Wenn die Anzahl der Argumente Null ist, löst diese Funktion einen ValueError aus; vorher gab sie stattdessen eine `E_WARNING` aus.
8.0.0 | Wenn `[width]` kleiner als Null oder größer als `PHP_INT_MAX` ist, löst diese Funktion einen ValueError aus; vorher gab sie stattdessen eine `E_WARNING` aus.
8.0.0 | Wenn `[precision]` kleiner als Null oder größer als `PHP_INT_MAX` ist, löst diese Funktion einen ValueError aus; vorher gab sie stattdessen eine `E_WARNING` aus.
8.0.0 | Wenn weniger Argumente angegeben werden als nötig, löst diese Funktion einen ValueError aus; vorher gab sie stattdessen eine `E_WARNING` aus.

### Beispiele

Beispiel #1 vprintf(): mit Nullen aufgefüllte Ganzzahlen

`<?php
vprintf("%04d-%02d-%02d", explode('-', '1988-8-1'));
?>`

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    1988-08-01

### Siehe auch

- printf() - Liefert einen formatierten String
- sprintf() - Gibt einen formatierten String zurück
- fprintf() - Schreibt einen formatierten String in einen Stream
- vsprintf() - Gibt einen formatierten String zurück
- vfprintf() - Schreibt einen formatierten String in einen Stream
- sscanf() - Überträgt einen String in ein angegebenes Format
- fscanf() - Interpretiert den Input einer Datei entsprechend einem angegebenen Format
- number_format() - Formatiert eine Zahl mit Tausender-Trennzeichen
- date() - Formatiert einen Unix-Zeitstempel

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open