Warning: vsprintf(): Too few arguments

Aus VMS1 Tutorial

Dies ist eine alte Version. Zeitpunkt der Bearbeitung: 11:36, 27. Jun. 2012 durch Jpwfour (Diskussion | Beiträge).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
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