Start · Sprachen · PHP · Referenz · str_increment

str_increment

Funktion

Inkrementiert eine alphanumerische Zeichenkette nach Perl-ähnlichen Regeln und gibt die erhöhte Zeichenkette zurück.

seit PHP 8.3.0 Kategorie: string

Signatur

str_increment(string $string): string

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

Typ
string
Beschreibung
Gibt die inkrementierte Zeichenkette zurück. Bei einem Überlauf (z. B. '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
b aa AA 10 100 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
A, B, C, D, E 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();
}
Fehler: str_increment(): Argument #1 ($string) must be composed only of alphanumeric ASCII characters

// 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.