Intereting Posts

Что делает ведущий ноль для php int?

echo(073032097109032116104101032118101114121032109111100101108032111102032097032109111100101114110032109097106111114032103101110101114097108046); 

По сути, очень много. Теперь, почему он выводит 241872 ? Я знаю, что PHP имеет обработчики float. Когда я удаляю начальный ноль, он работает так, как ожидалось. Что это за главный знак?

Solutions Collecting From Web of "Что делает ведущий ноль для php int?"

Если вы используете начальный ноль, число интерпретируется PHP как восьмеричное число . Таким образом, 9 не является действительной частью числа, и синтаксический анализатор останавливается там:

  0730320 (base 8) = 7 * 8^5 + 3 * 8^4 + 3 * 8^2 + 2 * 8^1 = 7 * 32768 + 3 * 4096 + 3 * 64 + 2 * 8 (base 10) = 241872 (base 10) 

Начальный ноль указывает восьмеричное целочисленное значение

Руководство :

Предупреждение

Если недопустимая цифра указана в восьмеричном целом (т.е. 8 или 9), остальная часть номера игнорируется.

Пример № 2 Октальная странность

 <?php var_dump(01090); // 010 octal = 8 decimal ?> 

Таким образом, ваш номер отключается после 0730320, что равно 241872 в десятичной системе.

010 дает вам 8 (восьмеричное число)
0x10 дает вам 16 (шестнадцатеричное число)