4. 我的猜想,错了勿喷~
在if后的 $a=5 是一句赋值语句 而不是判断的
复制成功,返回布尔值为1
但是布尔值是不可以做自增运算 ,于是就是一直是 1
关于b是因为 ||(短路或) 短路性,
一旦前面的为真,后头的就忽略了
然后$b还是5,做自增,为6
然后输出为 1 6
5.
@梦浪的小虾米,
$a = 3; //赋值
$b = 5;
if ($a=5 || $b = 7)//运算符优先级 逻辑运算符(||)高于赋值运算符(=),即$a = (bool)ture;$b=5;
{
$a++; //$a++ 值不变为1
$b++; //$b++值为5+1
}
echo $a.$b;
var_dump($a);可以看到变量类型,布尔值包括true和false两个值
6.
@1432572068,
@水木易安,我昨天试过$a=3;
echo a++;
echo $a;
发现a++时,a不变,然后echo $a时,发现$a值加1
这里的a在a++后输出照理说应该也加1啊
10.
@水木易安,赞成,但是此处或运算符的短路性还真不容易理解。。。
11.
@梦浪的小虾米,回复6楼,不久前也遇到一个类似6六楼的事情。比如楼层数:count出楼数后,用$num++,echo出来是竟然是楼数加二,不用$num++,直接把$num和一些数据insert into数据库,$num竟然有加一…………好困惑。可能哪里没弄好吧。
19. $a=5 || $b=7 等于 $a=(5 || $b=7)