我有一些带有一些整数的 PHP 代码,并且一切正常,除非我有08
or 0X
作为整数。当我把它们放在引号中时,一切都很好。
示例数字:
2 //Works fine
08 //Doesn't work
012 //Doesn't work
"08" //Works fine again
"012" //Works fine again
谁能告诉我背后的原因吗?
如果您只是编写 08 和 09(不带引号)或任何其他带有前导 0 的数字,PHP 会认为您编写的是八进制值,而 08 和 09 是无效的八进制数。
http://www.php.net/manual/en/language.types.integer.php
Syntax
整数可以用十进制(以 10 为基数)、十六进制(以 16 为基数)、
八进制(以 8 为基数)或二进制(以 2 为基数)表示法,前面可以选择
符号(- 或 +)。
自 PHP 5.4.0 起,二进制整数文字可用。
To use 八进制表示法,在数字前面加上0(零)。使用十六进制表示法在数字前面加上0x。使用二进制
符号在数字前面加上0b.
[...]
Warning:在 PHP 7 之前,如果八进制整数(即 8 或 9)中给出了无效数字,则该数字的其余部分将被忽略。从 PHP 7 开始,会发出解析错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)