有趣的PHP ++ 益智题

1、 下面$b 和 $c 分别值为多少?为什么$b 和 $c 值相等?
  1. <?php
  2. $a = 1;
  3. $b = $a + $a++;
  4. echo $b;

  5. $a = 1;
  6. $c = $a + $a + $a++;
  7. echo $c;
  8. ?>
复制代码
PHP 益智题答案:

2、 今天问个有趣的问题,下面两个 $b 和 b 分别值是多少?
  1. PHP 中
  2. $a=1;
  3. $b=$a+$a++;

  4. 以及 javascript中 
  5. var a=1;
  6. var b=a+a++;
复制代码
1、 在PHP 中 ++ 比 + 优先级更高,所以
  1. <?php
  2. $b = $a + $a++;
  3. // 可以被表述为 $b = $a + ($a++);
复制代码
如果你听信了上面的解释,觉得自己就掌握了这个,那么你就弱爆了!!!首先上面解释纯粹是对着答案给解释,
根本不合逻辑的!!因为既然第一个先计算$a++,那么下面应该也先计算后面的$a++,因为更有优先级!
所以综上所述,这个案例仅仅是PHP 一个逻辑上的运算Bug,不要当真,可能在不同版本的系统性,
显示结果不一样也不一定。
2、 $b=3;  b=2; 在PHP的解释可以通过上面来解释,而Javascript中, $a++ 比 + 优先级差,
所以加号从左往右计算,也即是 b=1+a++ = 1+1

  1. var a = 1;
  2. var c = a++;
  3. var b = 1;
  4. var d = ++b;
复制代码
正如上面的,因为 a++ 是先用,再执行加,所以c先赋值了a=1,赋值操作之后,再执行 a++;
所以此时 d = 1; a = 2; 而下面会++b会弹出2,因为 ++ b 就是先加后操作,
所以 等于 b++; d = b; 所以此时 d = 2;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值