strlen 如何处理数字?

How does strlen works with numbers?

我想弄清楚 strlen() 如何找到数字的长度。当我尝试以下操作时:

echo strlen(00000000000000000000000000000000);

它输出 1 但是当我尝试

echo strlen(11111111111111111111111111111111111111111111111111111111);

它输出19。有时它确实像这个例子一样正常工作:

echo strlen(19);

strlen() 输出 2。我知道我可以使用以下内容:

echo strlen('00000000000000000000000000000000');

它会输出 32 但我想弄清楚它是如何处理数字的。

因为 strlen() 给出字符串长度.. 00000000000000000000000000 不是字符串,直到它被写在像 "0000000000000000000000000" 或 '000000000000000000000000000=.. [=14] 这样的引号中

那为什么strlen(00000000000000000000000000000000)给出输出1而strlen(11111111111111111111111111111111111111111111111111111111)给出19?

因为整数000000000000000000000000000000000000000000 = 0 ..这意味着长度为1。而1111111111111111111111111111111111111111111111111111111111111111111111111首后,但不等于1,但是1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111EMBER

有关更多信息,您可以查看 strlen()

的文档

尝试 echo 11111111111111111111 它会回显 1.1111111111111E+19 ,这是 19 个字符,这就是为什么长度是 19 但是如果你尝试 echo 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 它会输出 1.1111111111111E+100 如果你尝试获取它的长度是 20 个字符