String conversion to numbers 上的 PHP 手册说:
这意味着当字符串转换为数字时,字符串开头的数字、加号或减号以外的任何内容都应返回 0
。然而,字符串开头的(某些)空格会被忽略:
echo intval(" 3"); // 3
echo intval("
3"); // 3
有没有
intval()
和 (int)
不会去除的空白?这种行为记录在哪里?
最佳答案
观察到的行为在很大程度上没有记录。可能空间剥离取决于 C 中的 strtod()
,它应该使用 isspace()
。
intval()
manual 说:
按照链接(链接已删除):
所以看起来 cast 和 intval()
是等价的。并略低于上面的报价:
好的。除了这个小笔记外,没有什么对我们真正有帮助的:
再次遵循链接线程,选择 strtod()
specified in POSIX 的版本,UNIX 的 API 标准。
常识告诉我们,这应该仅适用于浮点数,因为 strtod()
在 C 中返回一个浮点数,但数字解析和内部表示在 PHP 中很古怪,几乎与这种语言中的所有内容一样。谁知道它到底是如何工作的。最好不要知道。
关于php - `intval()` 和 `(int)` 如何处理空格?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27581035/