php递增、递减运算的理解

来源:互联网 发布:mac 强制删除文件夹 编辑:程序博客网 时间:2024/06/05 05:54
<?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 '<hr>';
$v1 = 10;
$v2 = $v1 ++;//(return 10, +1)

$v1 = 10;
$v3 = ++ $v1;//(+1, return 11)
var_dump($v2, $v3);
//int(10) int(11)
echo '<hr>';
//后++过程推理(注释部分)
$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 '<hr>';

$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);
/**总结:由于后++/--需要在运算完成之后返回其原来的值(没有递增和递减的值),需要一个额外的空间保存这个数据!
因此后++/-- 要比前++/-- 浪费一定的资源。建议:如果可以,尽量使用前置++/--。
*/

0 0
原创粉丝点击