Почему добавление 0 перед числом меняет его значение

Почему

var_dump(16) // displays int(16)

но

var_dump(016) // displays int(14)

Кто-нибудь может помочь мне решить эту проблему?

3

Решение

Второе значение называется восьмеричным. Это не то же самое, что база 10. Вместо этого это база 8. Когда вы добавляете 0 впереди это говорит PHP, чтобы рассматривать это как восьмеричное.

http://php.net/manual/en/language.types.integer.php

Целые числа могут быть указаны в десятичном формате (основание 10), шестнадцатеричном (основание 16), восьмеричное (основание 8) или двоичная (основа 2) нотация, необязательно с предшествующим знаком (- или +).

Чтобы использовать восьмеричное обозначение, перед числом ставьте 0 (ноль).

10 в базе 8 это 8

6 в базе 8 6

8 + 6 = 14

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]