Почему
var_dump(16) // displays int(16)
но
var_dump(016) // displays int(14)
Кто-нибудь может помочь мне решить эту проблему?
Второе значение называется восьмеричным. Это не то же самое, что и base 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