Warning: vsprintf(): Too few arguments

Aus VMS1 Tutorial

Wechseln zu: Navigation, Suche

Die Methode vsprintf formatiert einen String.

string vsprintf ( string $format , array $args )

$args enthält ein Array von Strings, die anhand des in $format angegebenen Formats verarbeitet werden.

In dem Format-Parameter kann dabei beliebiger Text stehen, der direkt so zurückgegeben wird. Einzige AUsnahme ist das Prozent-Zeichen (%), welches eine spezielle Umsetzungs-Anweisung einleitet.

Sobald ein % in $format auftaucht, erwartet die Methode vsprintf darauf einen Buchstaben, der den Typ des Arguments angibt, bspw. d für eine Zahl oder s für einen String. Dieses Argument wird dann aus $args ausgelesen. Damit muss $args genausoviele Elemente haben, wie Umsetzungs-Anweisungen in $format vorkommen. Will man allerdings direkt ein Prozentzeichen ausgeben, kann man dies durch zwei aufeinanderfolgende Prozentzeichen (%%) bewirken.

Mögliche Fehlerursachen

Entweder enthält der 2. Parameter, das Array $args, nicht genügend Elemente, oder man hat vergessen, ein Prozentzeichen durch zwei %% zu maskieren.

Beispiel

echo vsprintf("Es ist %s vor %d", array("kurz", 12));
//Ausgabe: Es ist kurz vor 12
echo vsprintf("Es ist %s vor %d", array("kurz")); // Falsch
//Ausgabe: Warning: vsprintf(): Too few arguments
echo vsprintf("Es wurden %d%% von 100%% erreicht", array(60));
//Ausgabe: Es wurden 60% von 100% erreicht
echo vsprintf("Es wurden %d% von 100% erreicht", array(60)); // Falsch
//Ausgabe: Warning: vsprintf(): Too few arguments
Persönliche Werkzeuge