Warning: vsprintf(): Too few arguments
Aus VMS1 Tutorial
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