一道php自增运算符题

刚才在论坛看到的..题目是这样的:

大家可以去运行一下 结果会是7!

这让我们很纳闷 为什么是7呢? 无论如何都出不来7啊..

下面我们改一下这道题目

这时候在让你回答.我觉得你是可以回答出正确答案的.

没错. 这个答案是9..我想这个我就不必解释了. 2+3+4 所以等于9

那么回到最上面的题.为什么会是7呢?

 

其实蒙蔽就蒙蔽在那么多自增运算符了. 我们可以去查一下手册运算符的优先级可以看到.

+ – .属于一个优先级 .也就是说PHP计算的时候需要从左向右计算.

所以PHP需要先计算 “i=”.(++$i) 这时候答案是会是 “i=2″ 注意这是字符串.

在PHP中”.“与”+“的区别是相当分明的.”.“就是字符串运算.”+“就是数字运算.

这时候的运算便成了”i=2″+(++$i)+(++$i)了 我们看到 运算中没有了点.所以PHP会去实行数字运算.

但是第一个是字符串.所以PHP会把”i=2″这个字符串强制转换成数字.由于这个字符串的第一个字符不是数字.所以强制转换后的记过就是0。如果这个字符串是”2i=2″.那么转换后就变成2了.

这时候0+3+4 所以就等于7了.

好了 总结下 这道题需要我们注意2点.

.“与”+“的优先级的问题
字符串强制转换成数字的问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值