$data[$i++]+=2;不等于$data[$i++]=$data[$i++]+2;
2024-10-14 13:41:21
$data=array(1,2,3,4); $i=1; $data[$i++]+=2; var_dump($data); echo $i; //输出:array(1,4,3,4) 和 2 $data=array(1,2,3,4); $i=1; $data[$i++]=$data[$i++]+2; var_dump($data); echo $i; //输出:array(1,5,3,4) 和 3
下面这句,在解析的时候还是从左到右解析,当解析第一个data[i++]的时候,由于是后++所以data数组里的i还是原来的i。当解析第二个的时候,第一个的后++完成了运算,则第二个data里的i比原来的i加了1。在运算的时候从右到左运算,所以结果就是i+1的数组元素的值乘以2然后赋值给i元素的值。而最后,i会加了2
上面那句i最后也只会加1,并且在与2相乘的时候取值也是i索引的值,赋值的时候也是i索引的值
结论:解析和计算并不是同时发生的,解析从左到右,计算从右到左
最新文章
- 5Hibernate入门----青软S2SH(笔记)
- window.navigate 与 window.location.href 的使用区别介绍
- 安装debian第一天遇到的几个问题及解决方案
- WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform
- DBA_Oracle Erp版本升级12.1.1到R12.1.3(案例)
- innodb 页分配
- (转)$.extend()方法和(function($){...})(jQuery)详解
- 虚拟机安装 deepin Linux 注意事项
- UIScrollView的无限左滑轮播一点也不难
- SQLSTATE[HY000]: General error: 1030 Got error 28 from storage engine
- 关于guns开源框架单元测试问题
- 训练题(代码未检验)(序列前k大和问题)
- 虹软 Android 人脸检测与人脸识别集成分享
- bzoj2938(ac自动机)
- 如何借助 NoSQL 提高 JPA 应用性能
- Prometheus Node_exporter 之 System Detail
- 【ORACLE】重写控制文件
- Eclipse的控制台console经常闪现
- 用exec调用带有output输出参数的存储过程
- 学习笔记---log4j的使用与配置