我最近在使用PHP中的ctype_*
函数组,发现奇怪的行为。例如,我有一些代码:为什么PHP中的ctype_space对于某些数值返回“true”?
for ($i = 0; $i < 1000000; $i++) {
if (ctype_space($i)) {
var_dump($i);
}
}
$i
时具有值[9,10,11,12,13,32]然后[ctype_space][1]
将返回真。我使用的是接下来的PHP版本:
PHP 7.1.4-1+deb.sury.org~xenial+1 (cli) (built: Apr 11 2017 22:12:32) (NTS)
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.4-1+deb.sury.org~xenial+1, Copyright (c) 1999-2017, by Zend Technologies
with Xdebug v2.5.1, Copyright (c) 2002-2017, by Derick Rethans
这是错误或PHP的功能?也许我不知道什么?请帮助我理解它。
引述手册:*“注:如果提供-128和255之间的整数,它被解释为的ASCII值单个字符(为了允许扩展ASCII范围内的字符,负值有256个)任何其他整数都被解释为包含整数小数位的字符串。“* ... 9是TAB,10是LF .. 。 等等。 – CD001