PHP · 05/14/2019 0

strpos第二个参数为数字时

$uid = 5;
$username = "tuine5";
//查询username是否含有uid
$pos = strpos($username, $uid);
//结果输出:false

如果第二位是数字时,文档解释如下:

needle

如果 needle 不是一个字符串,那么它将被转换为整型并被视为字符的顺序值。

解析:

$a = strpos('I AM KANGKANG', 321);
//则:321的ASCII值是:321%256=65, 即是查找A的位置,所以结果为:2

补充:

ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。