Php ctype_digit()是否对默认区域设置有感知?

Php ctype_digit()是否对默认区域设置有感知?,php,locale,Php,Locale,我总是避免使用ctype\u alnum(),因为根据默认的语言环境,它的行为会有所不同: setlocale(LC_ALL,'fr_fr'); $char=“\xe9”//拉丁文小写字母E随以锐音符(ISO-8859-1) 变量导出(ctype_alnum($char));//真的 这就是为什么我使用preg_match('/^[a-zA-Z0-9]+$/'),因为无论语言环境设置如何,它始终只接受ASCII字母 对于ctype\u digit()是否有类似的警告? 它可以允许0-9 ASC

我总是避免使用
ctype\u alnum()
,因为根据默认的语言环境,它的行为会有所不同:

setlocale(LC_ALL,'fr_fr');
$char=“\xe9”//拉丁文小写字母E随以锐音符(ISO-8859-1)
变量导出(ctype_alnum($char));//真的
这就是为什么我使用
preg_match('/^[a-zA-Z0-9]+$/')
,因为无论语言环境设置如何,它始终只接受ASCII字母

对于
ctype\u digit()
是否有类似的警告?


它可以允许0-9 ASCII数字之外的任何类型的字符吗?

在@Aziz Saleh注释后编辑


所有ctype函数“根据当前区域设置检查字符或字符串是否属于某个字符类(另请参见setlocale())。”(from)

所有
ctype
函数根据文档的行为相同

此扩展提供的函数根据当前区域设置检查字符或字符串是否属于某个字符类(另请参见setlocale()

资料来源:

这意味着
ctype\u digit
也可以接受非ASCII数字


我认为唯一的选择是坚持使用正则表达式,或者确保在代码之前设置默认语言环境(如果它不是变量)。

我并不总是信任PHP文档,尤其是当它忽略了一个信息时。如果有明确的文件证明它不依赖于语言环境,那么我肯定会相信它。同意@Benjamin,但在这种情况下,文件或Google上没有任何内容表明,从一开始,ctype函数就始终反映语言环境。@AzizSaleh关于
ctype_digit()
具体是什么?