はじめに
以下の関数は、現在のロケール(setlocale()も参照) に基づき文字または文字列がある文字クラスに含まれるかどうかを調べます。
整数の引数を指定してコールした場合、これらの関数は、ctype.h に記述された C の同名の関数と全く同様に動作します。 これは、256 より小さな整数が指定された場合、 指定した範囲 (数値は 0x30-0x39) に収まっているかどうかを 調べるために、そのアスキー値を使用することを意味します。 数値が -128 および -1 (境界を含む) の間の場合、256 が追加され、 その数字に関してチェックが行われます。
PHP 8.1.0 以降は、ctype関数 に文字列でない引数を渡すことは、推奨されなくなりました。将来のバージョンでは、引数は ASCII コードポイントではなく、文字列として解釈されるようになります。ユーザが意図する振る舞いによっては、引数を文字列にキャストするか、 chr() を明示的にコールすべきです。
文字列引数を指定してコールした場合、これらの関数は、その文字列の全
ての文字を調べ、その文字列の全ての文字が要求された基準に一致する場
合にのみ true
を返します。空文字列を渡して呼び出した場合、結果は常に false
になります。
文字列または整数以外のものを指定した場合は、直ちに false
が
返されます。
ctype 関数は、正規表現よりもつねに好ましく、さらに "str_*"
および "is_*"
のような
いくつかの等価な関数よりも好ましいことに注意してください。
これは、ctype 関数がネイティブな C ライブラリを使用しており、処理が著しく
高速であるためです。
注意:
これらの関数は、Python の "ctypes" ライブラリとはまったく無関係です。 この拡張モジュールの名前は C のヘッダファイル ctype.h からとったもので、このヘッダファイルには C 言語における同等の機能が定義されています。
また、この拡張モジュールのほうが Python の "ctypes" より先に登場しているわけで、 こんなややこしいことになってしまったのも、決して PHP のせいではないわけで…。