【发布时间】:2017-02-08 14:15:39
【问题描述】:
不想索取明显的问答,我想知道是否有人知道为什么会发生以下情况。
我有一个字符串变量 $string,其值为 '1011100001111'
在某个位置测试“1”或“0”:
$string[00] => '1' // correct
$string[01] => '0' // correct
$string[07] => '0' // correct
$string[08] => '1' // should be '0'
$string[ 8] => '0' // correct
使用前缀零时我花了一段时间才发现错误,显然我已经摆脱了它们,但为什么索引 08 与 8 不同?请注意,直到 07 它确实有效!
【问题讨论】:
-
如果我没记错的话,当您使用
08时,它使用的是该数字的十六进制值,而不是十进制值。所以它不是在寻找你认为的位置。 -
@WiktorStribiżew 啊,八进制,不是十六进制。感谢您清除它。 :-D
-
PHP7 给出一个
Parse error: Invalid numeric literal in...即08是一个无效的八进制数