作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 17:56:12
$a=0; $b=0; if($a=3 || $b=3){ $a++; $b++;} echo $a.”,”.$b;为什么结果是1,1啊,
还有将||换成|之后结果为什么是4,4,麻烦哪位大神给分析下if括号中的运算顺序
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;
再问: 十分感谢你的回答,但是或运算的优先级不是高于赋值运算吗?为什么是先赋值在或啊?还有为什么如果将或改成按位或,$a,$b都会变成整型,没有变成布尔值呢 ? 希望您能进一步给予解答,谢谢