在PHP中给出错误输出的if条件下3个变量的顺序比较

在PHP中给出错误输出的if条件下3个变量的顺序比较,php,comparison,Php,Comparison,我只是好奇三个变量的顺序值比较 $a=5; $b=6; $c=7; 我有3个以上的变量,但是用下面的方法测试了不同的场景 echo ($c > ($b > $a)) ? "true" : "false"; // output: false; echo (($c > $b) > $a) ? "true" : "false"; // output: false; echo intval($b > $a); // output: 1 echo intval($c

我只是好奇三个变量的顺序值比较

$a=5; $b=6;  $c=7;
我有3个以上的变量,但是用下面的方法测试了不同的场景

echo ($c > ($b > $a)) ? "true" : "false";  // output: false;
echo (($c > $b) > $a) ? "true" : "false";  // output: false;

echo intval($b > $a); // output: 1
echo intval($c > $b); // output: 1
在上述情况下,$a、$b和$c包含正数值,如果我们将true和
$a
$c
与true进行比较,并以较大/较小的符号表示,它将始终返回false

echo ($c > true) ? "true": "false"; // output: false
echo (true  > $c) ? "true": "false"; // output: false
echo ($a > true) ? "true": "false"; // output: false
echo (true  > $a ) ? "true": "false"; // output: false
为什么比较会给出错误的左右精度输出??对于以下条件

echo ($c > ($b > $a)) ? "true" : "false";  // output: false;
echo (($c > $b) > $a) ? "true" : "false";  // output: false;
如果压缩正数和布尔值返回false,那么为什么下面的比较返回false?

echo ($c > true) ? "true": "false"; // output: false
echo (true  > $c) ? "true": "false"; // output: false

如果比较中涉及布尔值。在您的情况下,这意味着您总是比较
true>true
,这显然是
false

您所有的数值比较都是
true
,例如:

$c > ($b > $a)
是:

实际导致
为真的情况是:

true > (5 > 6)
→ true > false
→ true

如果比较中涉及布尔值。在您的情况下,这意味着您总是比较
true>true
,这显然是
false

您所有的数值比较都是
true
,例如:

$c > ($b > $a)
是:

实际导致
为真的情况是:

true > (5 > 6)
→ true > false
→ true

@deceze,请勾选我修改的问题,与数字比较,布尔返回false@deceze,请勾选我修改的问题,与数字比较,布尔返回false;