具有某些值的数组中出现意外行为

时间:2016-07-11 10:21:32

标签: php

我的代码是:

$arr=[02,05,07,08,09];
print_r($arr)

,输出为:

Array
(
    [0] => 2
    [1] => 5
    [2] => 7
    [3] => 0
    [4] => 0
)

为什么会将0809转换为0 ??

2 个答案:

答案 0 :(得分:10)

以零开头的数字被视为基数为8。

请参阅PHP文档:Integers - Syntax

  

要使用八进制表示法,请在数字前面加上0(零)。要使用十六进制表示法,请在数字前面加上0x。要使用二进制表示法,请在数字前加上0b。

答案 1 :(得分:0)

它被视为八进制数。因为你是从零开始的。

SELECT s.id,s.tag,s.version FROM (
    SELECT t.*,
           ROW_NUMBER() OVER(PARTITION BY t.id ORDER BY t.version DESC) as rnk
   FROM YourTable t) s
WHERE s.rnk = 1