<?php /**在学习的过程中,很多和我一样的朋友会出现面试问题,因此,借着最近的学习,分享自己的学习笔记,主要理解是前++/--和 后++/--区别,重在理解!!!那么前后这么定义呢? (1)前后的区别,决定返回和运算之间的顺序! 前:先计算运算,再返回! 后:先返回值,再运算! (2) 递增和递减,都是由两个过程组成! 返回变量的值,与进行+/-运算。 $v1++ (return $v1, $v += 1 ); $v1-- (return $v1, $v1 -= 1); */ $v1 = 10; $v2 = 1.5; $v1++; $v2++; var_dump($v1, $v2); echo '
'; $v1 = 10; $v2 = $v1 ++;//(return 10, +1) $v1 = 10; $v3 = ++ $v1;//(+1, return 11) var_dump($v2, $v3); //int(10) int(11) echo '
'; //后++过程推理(注释部分) $v1 = 10; $v2 = $v1 + $v1++; // = $v1 + ($v1++) // = $v1 + (return 10, $v1=11) // = $v1 + 10; // = 11 + 10 // = 21 //前++过程推理(注释部分) var_dump($v2); $v1 = 10; $v2 = $v1 + ++$v1; // = $v1 + (++$v1); // = $v1 + (+1,11; return 11);//括号中的操作是同时发生的,没有写后顺序 // = $v1 + 11; // = 11 + 11; // = 22; var_dump($v2); //以下说明的是并不是递增和递减意味着就是+1或者-1 echo '
'; $v3 = 'A'; $v3 ++;//+1 'A' + 1//1 var_dump($v3); //其他的类型也可以递增或递减,但不是+1,不会转换! $v3 = 'Z'; $v3 ++;//+1 'A' + 1//1 var_dump($v3); $v3 ++; var_dump($v3); /**总结:由于后++/--需要在运算完成之后返回其原来的值(没有递增和递减的值),需要一个额外的空间保存这个数据! 因此后++/-- 要比前++/-- 浪费一定的资源。建议:如果可以,尽量使用前置++/--。 */