я использую 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()
функция и значение каждой числовой константы, которая будет передана.
Пожалуйста, дайте мне знать, где я делаю ошибку? Я просто пытаюсь выполнить код, как описано в тексте руководства.
Благодарю вас.
Чтобы выразить числа в двоичном в PHP, вы должны использовать префикс 0b
(например, 0b00000010
).
Без этого префикса эти числа интерпретируются так, как вы не предполагали. 00000010
интерпретируется как восьмеричное представление 8, и 1000000
читается как один миллион, в десятичном виде.
Других решений пока нет …