Start · Sprachen · PHP · Referenz · ctype_upper

ctype_upper

Funktion

Prüft, ob alle Zeichen im übergebenen String Großbuchstaben (A–Z) sind.

seit PHP 4.0.4 Kategorie: string

Signatur

ctype_upper(string $text): bool

Beschreibung

ctype_upper() gibt true zurück, wenn jedes Zeichen im übergebenen String ein Großbuchstabe des ASCII-Alphabets (A–Z) ist. Ziffern, Leerzeichen, Sonderzeichen oder Kleinbuchstaben führen dazu, dass die Funktion false zurückgibt.

Die Funktion gehört zur ctype-Erweiterung und arbeitet ausschließlich mit dem ASCII-Zeichensatz. Umlaute wie Ä, Ö, Ü oder andere nicht-ASCII-Großbuchstaben werden nicht als Großbuchstaben erkannt – dafür müsste man auf mb_strtoupper() in Kombination mit Vergleichen oder reguläre Ausdrücke mit Unicode-Unterstützung zurückgreifen.

Typische Anwendungsfälle sind die Validierung von Eingaben wie Länderkürzeln (z. B. DE, US), Produktcodes, Kennzeichen oder sonstigen Bezeichnern, die ausschließlich Großbuchstaben enthalten dürfen.

Wichtig: Ein leerer String ('') gibt seit PHP 8.1 false zurück. In früheren PHP-Versionen konnte ein leerer String je nach Plattform true liefern.

Parameter

Name Typ Default Beschreibung
$text Pflicht string Der zu prüfende String. Nur ASCII-Großbuchstaben (A–Z) führen zu einem Ergebnis von true.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn alle Zeichen im String Großbuchstaben (A–Z) sind, andernfalls false. Ein leerer String gibt false zurück.

Beispiele

Einfache Prüfung auf Großbuchstaben

<?php
$tests = ['HELLO', 'Hello', 'HELLO WORLD', 'ABC123', 'DE', ''];

foreach ($tests as $t) {
    $result = ctype_upper($t) ? 'true' : 'false';
    echo var_export($t, true) . ' => ' . $result . "\n";
}
'HELLO' => true 'Hello' => false 'HELLO WORLD' => false 'ABC123' => false 'DE' => true '' => false

Validierung eines Ländercodes

<?php
function validateCountryCode(string $code): bool {
    return strlen($code) === 2 && ctype_upper($code);
}

$codes = ['DE', 'de', 'US', 'U1', 'GBR', 'FR'];

foreach ($codes as $code) {
    $valid = validateCountryCode($code) ? 'gültig' : 'ungültig';
    echo "$code => $valid\n";
}
DE => gültig de => ungültig US => gültig U1 => ungültig GBR => ungültig FR => gültig

// Wichtig · Fallstricke

Achtung bei Nicht-ASCII-Zeichen: ctype_upper() erkennt ausschließlich die ASCII-Großbuchstaben A–Z. Großgeschriebene Umlaute wie Ä, Ö, Ü oder andere Unicode-Großbuchstaben werden als false gewertet. Für mehrsprachige Anwendungen sollte stattdessen preg_match('/^\p{Lu}+$/u', $text) verwendet werden.

Leerer String: Seit PHP 8.1 gibt ctype_upper('') konsistent false zurück. In älteren Versionen war das Verhalten bei leerem String plattformabhängig und konnte true liefern.