【问题标题】:PHP String Indexing 'error'PHP字符串索引'错误'
【发布时间】: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 它确实有效!

【问题讨论】:

标签: php string


【解决方案1】:

来自documentation 关于整数:

要使用八进制表示法,请在数字前加上 0(零)

所以08 不是整数 8,因此不会返回您期望的索引。这是一个无效的八进制数,解析为 0。

【讨论】:

  • 但是有好消息。在 PHP7 中会产生 Parse Error
  • 感谢您解决这个问题。让我想知道如果我使用 008 会有什么结果。我会尝试找出答案。
【解决方案2】:

如果您在数字前加上 0,它们将被视为八进制数。所以从 00 到 07,它们相当于十进制的 0-7。但是 08 在八进制中不存在,所以它解析为 0。

【讨论】:

    猜你喜欢
    • 2010-10-27
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 2012-07-10
    • 2020-07-20
    • 2014-11-25
    相关资源
    最近更新 更多