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