Почему функция phpinfo () дает неверный результат, когда одна или несколько числовых констант побитовых значений передаются в качестве аргументов?

я использую PHP 7.2.8

Я выполнил ниже код:

<?php
phpinfo(2 | 8); //Bitwise OR operator is used
?>

Выше код работал нормально и дает мне ожидаемый результат.

Затем я попытался передать числовые константы побитовых значений в качестве аргументов, то есть двоичные эквиваленты чисел 2 и 8 в качестве аргументов. Пожалуйста, смотрите код ниже:

<?php
phpinfo(00000010 | 1000000); //Bitwise OR operator is used
?>

Я получил неожиданный вывод приведенного выше кода (то есть второй, где передаются поразрядные значения числовых констант).

Почему так?

Пожалуйста, обратитесь Эта ссылка для информации описания аргументов, которые должны быть переданы phpinfo() функция и значение каждой числовой константы, которая будет передана.

Пожалуйста, дайте мне знать, где я делаю ошибку? Я просто пытаюсь выполнить код, как описано в тексте руководства.

Благодарю вас.

0

Решение

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

Без этого префикса эти числа интерпретируются так, как вы не предполагали. 00000010 интерпретируется как восьмеричное представление 8, и 1000000 читается как один миллион, в десятичном виде.

4

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector