当前位置:  开发笔记 > 编程语言 > 正文

PHP xor返回错误的值

如何解决《PHPxor返回错误的值》经验,为你挑选了1个好方法。

使用php 7.1.0我正在运行这个小测试:



它又回来了,说不好.为什么?两个真值的xor应为FALSE,而不是true.



1> Barmar..:

问题是运营商优先级.该xor运营商的优先级比=,所以你的语句相当于:

($value = $a) xor $b;

你需要写:

$value = ($a xor $b);

要么

$value = $a ^ $b;

^操作是逐位异或,而不是布尔值.但是true并且false将被转换为10,并且逐位结果将等同于布尔结果.但是如果变量的原始值可能是数字,这将不起作用 - 所有非零数字都是真实的,但当你用它们执行逐位XOR时,你会得到任何两个不同的数字的真实结果.

请参阅PHP运算符优先级表

使用bool表达式查看PHP中的相关Assignment:奇怪的行为

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有