Signatur
Beschreibung
str_increment() erhöht eine alphanumerische Zeichenkette um eins, analog zum ++-Operator auf Strings in älteren PHP-Versionen (vor PHP 8.0) oder zu Perls String-Inkrement. Buchstaben werden dabei nach dem Alphabet weitergezählt ('a' → 'b', 'z' → 'aa'), Ziffern nach dem Dezimalsystem ('9' → '10'). Gemischte alphanumerische Zeichenketten werden ebenfalls korrekt behandelt.
Die Funktion ist besonders nützlich, wenn man einfache, lesbare Bezeichner erzeugen möchte – etwa Spaltenbeschriftungen wie in Tabellenkalkulationen ('A', 'B', …, 'Z', 'AA', 'AB') oder sequenzielle Versions-Suffixe.
Im Gegensatz zum ++-Operator auf String-Variablen, der seit PHP 8.0 als deprecated gilt und in PHP 9.0 entfernt werden soll, ist str_increment() die explizite, zukunftssichere Methode für diesen Zweck. Die Eingabe darf ausschließlich aus alphanumerischen ASCII-Zeichen bestehen; andere Zeichen führen zu einem ValueError.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $string Pflicht | string | Die alphanumerische Zeichenkette, die inkrementiert werden soll. Darf nur die Zeichen A–Z, a–z und 0–9 enthalten. Leere Zeichenketten oder Zeichenketten mit Sonderzeichen führen zu einem ValueError. |
Rückgabewert
'z' → 'aa', 'Z9' → 'AA0') wird die Zeichenkette entsprechend verlängert.Beispiele
Einfaches Buchstaben- und Ziffern-Inkrement
<?php
// Einzelne Buchstaben inkrementieren
echo str_increment('a'); // b
echo str_increment('z'); // aa
echo str_increment('Z'); // AA
// Ziffern inkrementieren
echo str_increment('9'); // 10
echo str_increment('99'); // 100
// Gemischte alphanumerische Zeichenkette
echo str_increment('Az9'); // Ba0
Tabellenspalten-Bezeichner wie in einer Tabellenkalkulation erzeugen
<?php
// Erzeugt Spaltenbezeichner A bis AZ
$column = 'A';
$columns = [];
for ($i = 0; $i < 52; $i++) {
$columns[] = $column;
$column = str_increment($column);
}
echo implode(', ', array_slice($columns, 0, 5)); // A, B, C, D, E
echo PHP_EOL;
echo implode(', ', array_slice($columns, 24, 5)); // Y, Z, AA, AB, AC
Fehlerbehandlung bei ungültiger Eingabe
<?php
try {
// Sonderzeichen sind nicht erlaubt
$result = str_increment('a-1');
} catch (ValueError $e) {
echo 'Fehler: ' . $e->getMessage();
}
// Wichtig · Fallstricke
Deprecation des ++-Operators auf Strings: Seit PHP 8.0 ist das direkte Inkrementieren von String-Variablen mit $str++ als deprecated markiert. str_increment() ist der empfohlene Ersatz und sollte in neuem Code konsequent verwendet werden.
Keine Dekrementierung: Es gibt kein Gegenstück str_decrement() in PHP 8.3. Soll eine Zeichenkette dekrementiert werden, muss dies manuell implementiert werden.
Nur ASCII-alphanumerische Zeichen: Leerzeichen, Umlaute, Sonderzeichen und leere Strings lösen einen ValueError aus. Die Eingabe sollte daher vor dem Aufruf validiert werden.