# 字符类型检测

# 简介

该扩展所提供的函数用来检测 在当前的区域设定下（参见 setlocale()）检查字符或者字符串 是否仅包含指定类型的字符。

当使用整数作为参数调用这些函数的时候， 这些函数的行为和 C 语言（ctype.h） 中的对应函数一样。 也就是说，如果传入了小于 256 的整数参数，它会把这个整数当做 ASCII 码值， 来检测对应字符是否符合要求（数值检测的 ASCII 值范围为 0x30-0x39）。 如果传入的参数介于 -128 和 -1 之间（含 -128 和 -1），它会先将其加上 256，然后再进行检测。

警告

自 PHP 8.1.0 起，弃用传递非字符串参数。未来该参数将解释为字符串而不是 ASCII 码点。根据预期行为，应将参数转为字符串或显式调用 chr()。

当传入参数为字符串的时候，它会对字符串中的每个字符进行检测， 仅当字符串中的每个字符都符合指定条件的情况下才会返回 `true`。 当使用空字符串调用时，结果始终为 `false`。

传入除整数和字符串之外的参数 会立即返回 `false`。

需要提醒的是，如果可以满足需求，请优先考虑使用 ctype 函数， 而不是正则表达式或者对应的 `"str_*"` 和 `"is_*"` 函数。 因为 ctype 使用的是原生 C 库，所以会有明显的性能优势。

> 注意:

> 这些函数和 Python 中的 “ctypes” 库没有任何关系。 ctype 的名字源自对应的 C 语言中的头文件 ctype.h。

> 实际上，这个扩展是先于 Python 的 “ctypes”，所以该命名引起的任何困扰都不是 PHP 的错。

- 安装/配置
  - 需求
  - 安装
- Ctype 函数
  - ctype_alnum — 检测字母数字式字符
  - ctype_alpha — 检测字母字符
  - ctype_cntrl — 检测控制字符
  - ctype_digit — 检测数字字符
  - ctype_graph — 检测除空格外的任何打印字符
  - ctype_lower — 检测小写字符
  - ctype_print — 检测可打印字符
  - ctype_punct — 检测可打印的字符是不是不包含空白、数字和字母
  - ctype_space — 检测空白字符
  - ctype_upper — 检测大写字符
  - ctype_xdigit — 检测字符是否只包含十六进制字符

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open