我最近ctype_*在PHP中使用了一组函数,发现了奇怪的行为.例如,我有一些代码:
for ( $i = 0; $i < 1000000; $i++ ) {
if ( ctype_space( $i ) ) {
var_dump( $i );
}
}
Run Code Online (Sandbox Code Playgroud)
当$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
Run Code Online (Sandbox Code Playgroud)
这是PHP的错误还是功能?也许我不知道什么?请帮我理解一下.
从手册:
如果提供介于-128和255之间的整数,则将其解释为单个字符的ASCII值(为了允许扩展ASCII范围内的字符,添加了256个负值).任何其他整数都被解释为包含整数的十进制数字的字符串.
在ASCII中,这些数字是空格字符:
9 Horizontal tab
10 New Line
11 Vertical Tab
12 Form feed
13 Carriage return
32 Space
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |