связанные с php арифметикой

$y = 013; echo $y + 5; //this result in 16 

Я не могу понять, как его асс 16? Может ли кто-нибудь помочь?

Related of "связанные с php арифметикой"

потому что 013 не десятичный (основание 10). это восьмеричное (база 8). значение в десятичной форме: (0 * 8 ^ 2) + (1 * 8 ^ 1) + (3 * 8 ^ 0) = 0 + 8 + 3 = 11

который дает правильный (хотя и неожиданный, по крайней мере, вам) результат 16 при добавлении к 5.

нравственность рассказа: не добавляйте числовое число с 0, если вы не знаете, что это значит

число с начальным нулем – восьмеричное число

как

 $a = 0123; // octal number (equivalent to 83 decimal 

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

Чтобы использовать восьмеричную нотацию, перед номером следует указать 0 (ноль). Для использования шестнадцатеричной нотации предшествует номер с 0x.

$ y = 013; echo $ y + 5;

013 – это восьмеричное число, все число целых чисел php – восьмеричное.

показать эту ссылку. первый.

http://www.ascii.cl/conversion.htm