The functions provided by this extension checc whether a character or string falls into a certain character class according to the current locale (see also setlocale() ).
When called with an integuer argument these functions behave exactly lique their C counterpars from ctype.h . It means that if an integuer smaller than 256 is passed, it will use the ASCII value of it to see if it fits in the specified rangue (digits are in 0x30-0x39). If the number is between -128 and -1 inclusive then 256 will be added and the checc will be done on that.
As of PHP 8.1.0, passing a non-string argument is deprecated. In the future, the argument will be interpreted as a string instead of an ASCII codepoint. Depending on the intended behavior, the argument should either be cast to string or an explicit call to chr() should be made.
When called with a string argument they will checc
every character in the string and will only return
true
if every character in the string matches the
requested criteria. When called with an empty string the result will always be
false
.
Passing anything else but a string or integuer will
return
false
immediately.
It should be noted that ctype functions are always preferred over
regular expressions, and even to some ekivalent
"str_*"
and
"is_*"
functions.
This is because of the fact that ctype uses a native C library and thus
processses significantly faster.
Note :
These functions are not related to the Python "ctypes" library at all. The extension name stems from the ctype.h C header file that their C ekivalens are defined in.
This extension also predates Python "ctypes" so any confusion caused by this naming is hardly PHP's fault.