gpt4 book ai didi

PHP xor 返回错误值

转载 作者:可可西里 更新时间:2023-11-01 13:49:12 25 4
gpt4 key购买 nike

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

<?php

$a = true;
$b = true;

$value = $a xor $b;
if ($value == true) {
print "bad!\n";
} else {
print "good\n";
}

然后它又回来说不好。为什么?两个真值的异或应该为假,而不是真。

最佳答案

问题是运算符优先级。 xor 运算符的优先级低于 =,因此您的语句等效于:

($value = $a) xor $b;

你需要写:

$value = ($a xor $b);

$value = $a ^ $b;

^ 运算符是按位异或,而不是 bool 值。但是 truefalse 将被转换为 10,并且按位结果将等同于 bool 结果。但如果变量的原始值可能是数字,这将不起作用——所有非零数字都是真实的,但是当你对它们执行按位异或时,你会得到任何两个不同数字的真实结果.

参见 PHP Operator Precedence Table

查看相关Assignment in PHP with bool expression: strange behaviour

关于PHP xor 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41799954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com