已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP > 源码

标题: 你能撸出来?

作者: @Ta

时间: 2015-07-18

点击: 18070

<?php
    $a = 3;
    $b = 5;
    if($a=5 || $b=7){
        $a++;
        $b++;
    }
    echo $a.$b;
   ?>求解惑,为何a为1

[隐藏样式|查看源码]


『回复列表(29|隐藏机器人聊天)』

1. #和谐#
(/@Ta/2015-07-18 12:02//)

2. 城里人真会玩
(/@Ta/2015-07-18 12:05//)

3. 你不会显示出来的结果为14吧
(/@Ta/2015-07-18 12:11//)

4. 我的猜想,错了勿喷~

在if后的 $a=5 是一句赋值语句 而不是判断的
复制成功,返回布尔值为1

但是布尔值是不可以做自增运算 ,于是就是一直是 1

关于b是因为 ||(短路或)  短路性,
一旦前面的为真,后头的就忽略了
然后$b还是5,做自增,为6
然后输出为 1 6
(/@Ta/2015-07-18 12:11//)

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两个值
(/@Ta/2015-07-18 12:12//)

6. @1432572068@水木易安,我昨天试过$a=3;
echo a++;
echo $a;
发现a++时,a不变,然后echo $a时,发现$a值加1
这里的a在a++后输出照理说应该也加1啊
(/@Ta/2015-07-18 12:21//)

8. 城里人真会玩
(/@Ta/2015-07-18 12:34//)

9. 城里人真会玩。
(/@Ta/2015-07-18 12:42//)

10. @水木易安,赞成,但是此处或运算符的短路性还真不容易理解。。。
(/@Ta/2015-07-18 12:47//)

11. @梦浪的小虾米,回复6楼,不久前也遇到一个类似6六楼的事情。比如楼层数:count出楼数后,用$num++,echo出来是竟然是楼数加二,不用$num++,直接把$num和一些数据insert into数据库,$num竟然有加一…………好困惑。可能哪里没弄好吧。
(/@Ta/2015-07-18 12:49//)

12. @水木易安@vanwoos,为什么$a赋值后会变成bool????
(/@Ta/2015-07-18 12:51//)

13. @Ta@1432572068@水木易安,好尼玛神奇,在条件句中赋值。没见过。好神奇!
(/@Ta/2015-07-18 12:52//)

14. @zoqu,又不是没见过,你不会才明白吧
(/@Ta/2015-07-18 12:53//)

15. @Ta,大神给我讲讲???
(/@Ta/2015-07-18 12:54//)

16. @vanwoos,原来这玩意叫短路性?
(/@Ta/2015-07-18 12:54//)

17. @zoqu,不敢当,我只是以前犯过这种错误而已
(/@Ta/2015-07-18 12:55//)

18. @Ta,大神给我讲讲。。。。
(/@Ta/2015-07-18 12:56//)

19. $a=5 || $b=7  等于 $a=(5 || $b=7)  
(/@Ta/2015-07-18 12:58//)

20. @快乐是福,更神奇,给我讲讲??
(/@Ta/2015-07-18 12:58//)

下一页 1/2页,共29楼

回复需要登录

7月22日 11:10 星期二

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1