$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索引的值
结论:解析和计算并不是同时发生的,解析从左到右,计算从右到左
时间: 2024-11-15 12:48:18