PHP里的++表示加1吗

关于PHP里的++,大家认为是什么意思呢,好吧,给大家一个程序,你们看看它的运行结果是什么吧: 好,程序到此就结束啦!大家先想一下自己的答案,可能你通过执行程序得到了答案,但是为什么会有这个结果呢?想一想然后在向下看吧,如果你了解就不作向下面看啦。 //为了让能有一过思考的过程,防止大家无意看到下面的内容,所以中间将有一些空白部分:// 好啦,大家的结果是什么样的,我的结果是11,为什么$a和$b最后会是1呢,先分析一下,php里,或的优先级高于赋值,所以,if里可以写成if($a=(3||$b)=3),那么执行的结果是或的条件在第一次就成立,所以给$a赋值,而没有给$b赋值,所以$b还是等于0,那么$b等于0就清楚啦,下面来看$a,为什么$a也是1 呢,当时我想了很久也没有想能,一开始问题是我把或与赋值的优先级弄错了,但是后来弄对了结果也不是想像中的那样(想像中是2),那么为什么这样呢,后来寝室里的一个同学(30期李子云)启发了我一下---输出if后$a的类型,好,请执行下面的程序: 你看到的结果是什么?是不是bool(true)?好吧,继续。问题是输出的时候会输出1,这个还涉及到一个特殊的问题,那就是bool型为真的时候用echo输出的时候是1,假输出的时候为0,那么后面的那个++为什么没有生效呢,问题的答案开始揭晓啦,请执行下面的程序: $a++后的值及类型是:',var_dump($a); $a+1; echo '
$a+1后的值及类型是:',var_dump($a); }
结果一目了然啦,PHP里的++并不是表示加1,如果是直接用+1,那么会涉及到一个类型转换问题,像bool型的真就会转成实型的1计算,也就是低精度的向高精度转。此例就证明啦++并不是表示加1,而是相同类型的加加,有些类型就没有办法++,比如你对一个字符串或数组(当然有些类型是不能进行加1的)等进行++,没有效果是吧,但是你加1试试,类型转换了吧!好吧,讨论到此结束: 结论:PHP里++关不表示加1,面是表示相同类型的++,而有的类型相同类型的没办法++,也就是没有任何效果,以前我总把这个给误以为就是加1是不对地。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值