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