Функции модуля проверяют принадлежность символа или строки конкретному классу символов с учётом региональных настроек (смотрите также описание функции setlocale()).
При вызове с целочисленным аргументом функции ведут себя точно так же, как их эквиваленты в языке C (из файла ctype.h). Это означает, что если передаётся целое значение меньше 256, функции проверяют, соответствует ли это ASCII-значение заданному классу символов (цифры лежат в диапазоне 0x30-0x39). Если число находится в пределах от -128 до -1 включительно, то к значению числа прибавится 256 и сравнение будет проводиться с результатом сложения.
Начиная с PHP 8.1.0 передача нестроковых аргументов устарела. В будущем аргумент вместо ASCII-кода будет интерпретироваться как строка. В зависимости от предполагаемого поведения аргумент либо преобразовывают в строку (string), либо вызывают функцию chr().
Если аргументом выступает строка, функции будут проверять каждый символ
в этой строке и вернут true
, только если каждый символ удовлетворяет
требуемому условию. При вызове с пустой строкой результатом всегда будет false
.
При передаче данных других типов (кроме целого числа или строки) функции
сразу же возвращают false
.
Следует отметить, что лучше предпочесть функции модуля ctype регулярным выражениям
и даже некоторым эквивалентным функциям семейств str_*
и is_*
.
Это связано с тем, что модуль ctype использует собственную библиотеку языка C и поэтому
работает значительно быстрее.
Замечание:
Эти функции никак не связаны с Python-библиотекой ctypes. Название модуля происходит от имени заголовочного файла языка C — ctype.h, который содержит эквивалентные определения C-функций.
Модуль создали раньше библиотеки ctypes языка Python, поэтому любая путаница с названиями вряд ли представляет собой ошибку со стороны разработчиков модуля.