我最近在使用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