Die Funktionen dieser Extension überprüfen, ob ein Zeichen oder eine Zeichenkette in eine bestimmte Zeichenklasse fällt, unter Berücksichtigung der momentanen locale-Einstellung (Siehe auch setlocale()).
Beim Aufruf mit einem Integer-Parameter verhalten sich diese Funktionen exakt wie ihre C-Gegenstücke aus ctype.h. Das bedeutet, wenn ein Integer übergeben wird, der kleiner ist als 256, wird dessen Ascii-Wert verwendet, um zu prüfen, ob er in den angegebenen Bereich fällt (Zahlen liegen im Bereich 0x30-0x39). Liegt die Zahl zwischen -128 und -1 (einschließlich der Grenzen), wird 256 addiert und eine Überprüfung dieser Zahl durchgeführt.
Seit PHP 8.1.0 ist die Übergabe eines Nicht-String-Arguments veraltet. In Zukunft wird das Argument statt als ASCII-Codepunkt als String interpretiert werden. Je nach beabsichtigtem Verhalten sollte das Argument entweder in String umgewandelt werden, oder es sollte ein expliziter Aufruf von chr() erfolgen.
Beim Aufruf mit einem String-Argument überprüfen sie jedes einzelne
Zeichen und geben nur true
zurück, wenn jedes einzelne Zeichen die
angeforderten entsprechenden Kriterien erfüllt. Bei einem Aufruf mit einer leeren Zeichenkette wird immer false
zurückgegeben.
Sobald irgendetwas anderes als ein String oder Integer als Argument
übergeben wird, wird sofort false
zurückgegeben.
Die ctype Funktionen sind grundsätzlich performanter als die entsprechenden
regular Expressions und oft auch schneller als die equivalenten
str_*
und is_*
Funktionen da sie
direkt in C geschrieben und optimiert sind.
Hinweis:
Diese Funktionen sind in keiner Weise mit der Python "ctypes" Bibliothek verwandt. Der Name der Erweiterung stammt von der ctype.h C Header-Datei an, in der ihre Equivalente definiert sind.
Diese Erweiterung ist auch älter als Python "ctypes", so dass jegliche Verwirrung, die durch diese Namensgebung verursacht wird, kaum PHPs Fehler ist.