$a=0; $b=0; if($a=3 || $b=3){ $a++; $b++;} echo $a.”,”.$b;为什么结果是1,1啊,
2个回答
展开全部
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都会变成整型,没有变成布尔值呢 ? 希望您能进一步给予解答,谢谢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询