$data[$i++]+=2;不等于$data[$i++]=$data[$i++]+2;
$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索引的值
结论:解析和计算并不是同时发生的,解析从左到右,计算从右到左
随机推荐
- oracle创建/删除表空间、创建/删除用户并赋予权限
创建表空间 分开执行如下sql语句 --创建临时表空间 CREATE SMALLFILE TEMPORARY TABLESPACE "TEMP11" TEMPFILE 'E:\ap ...
- PHP面向对象初中高级之由浅入深
php面向对象编程基本实践:(了解类,类到对象的实例化,构造和析构,对象的引用); 类的概念: 物以类聚,把具有相似特性的对象对垒到一个类中 类定义了这些相似对象拥有的相同的属性和方法 类是相似对象的 ...
- 问题✅:render json的格式支持。to_json被改成as_json,功能一样
class StudentsController < ApplicationController def show @student = Student.find(params[:id]) re ...
- 百度定位SDK
按照官网要求配置SHA1和包名生成ak秘钥 生成秘钥命令: keytool -list -v -keystore debug.keystore 密码:原始密码为android 添加libs文件夹并在g ...
- bzoj2242: [SDOI2011]计算器 BSGS+exgcd
你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值:(快速幂) 2.给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数:(exgcd) 3.给 ...
- Socket编程基础篇
Socket又称"套接字",应用程序通常通过“套接字”向网络发生请求或者应答网络请求. Socket和ServerSocket类库位于java.net包中,ServerSocket ...
- JS常用操作方法图表
截取字符串方法 方法名 参数 返回值 例子 String.prototype.substr() (indexStart, length) 都可为负数,length为负数时自动转为0,length不传默 ...
- Vscode设置个人爱好
Vscode设置个人爱好 插件列表 abusaidm.html-snippets-0.1.0 adamwalzer.string-converter-0.0.9 AESSoft.aessoft-c ...
- winform窗体this方式和handle(句柄)方式的区别
我们来比较winform窗体的this方式和win32api handle方式实现窗体的最大化.默认窗体.半透明.不透明的区别 1.窗体界面设计 this方式按钮: btnMaxWindow. btn ...
- Awk 从入门到放弃(4) — Aws 格式化
转:http://www.zsythink.net/archives/1421 print & printf的区别:printf不带\r\n 在awk当中,格式替换符的数量必须与传入的参数的数 ...