$a=0; $b=0; if($a=3 || $b=3){ $a++; $b++;} echo $a.”,”.$b;为什

$a=0; $b=0; if($a=3 || $b=3){ $a++; $b++;} echo $a.”,”.$b;为什么结果是1,1啊,
还有将||换成|之后结果为什么是4,4,麻烦哪位大神给分析下if括号中的运算顺序
xzm0263 1年前 已收到1个回答 举报

绝不能姑息 幼苗

共回答了16个问题采纳率:100% 举报

if($a=3 || $b=3) 注意这里 是用的 一个等号 一个等号 是赋值 注意if里面 的空号 在$a $b赋完值后 还进行 或运算 而在进行或运算的时候 $a $b 数据类型自动 转换为了 布尔值

$a=0; $b=0;
if($a=3 || $b=3){
var_dump($a);
var_dump($b);
$a++; $b++;
var_dump($a);
var_dump($b);
}
echo $a.",".$b;

1年前 追问

5

xzm0263 举报

十分感谢你的回答,但是或运算的优先级不是高于赋值运算吗?为什么是先赋值在或啊?还有为什么如果将或改成按位或,$a,$b都会变成整型,没有变成布尔值呢 ? 希望您能进一步给予解答,谢谢
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.014 s. - webmaster@yulucn.com