PHP*_*Fan 0 php constants function phpinfo bitwise-or
我正在使用PHP 7.2.8
我执行以下代码:
<?php
phpinfo(2 | 8); //Bitwise OR operator is used
?>
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,并给了我预期的结果。
然后,我尝试将数值常量按位值作为参数传递,即将数字2和8的二进制等效项作为参数传递。请看下面的代码:
<?php
phpinfo(00000010 | 1000000); //Bitwise OR operator is used
?>
Run Code Online (Sandbox Code Playgroud)
我得到了上述代码的意外输出(即,第二个代码中传递了数字常量的按位值)。
为什么这样?
请参阅此链接,以获取有关要传递给phpinfo()函数的参数的描述以及要传递的每个数字常量的含义的信息。
请让我知道我在哪里出错了?我只是想按照手册中的描述执行代码。
谢谢。
要在PHP中以二进制形式表示数字,必须使用前缀0b(例如0b00000010)。
没有该前缀,这些数字将以您不希望的方式进行解释。00000010解释为8的八进制表示形式,并1000000以十进制表示为一百万。