我正在使用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
并被解读为一百万,十进制。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句