++ 与 -- 运算符详解篇

首先了解下什么是运算符,都有哪些运算符。实际当中大家常见到的可能是算术运算符和比较运算符,适用于各种运算场景,是不是很常见呢。今天要说的就是算术运算符中的 ++ 和 --,分别有什么作用呢。其实 ++相当于 +( 加法),-- 相当于 - (减法), 在语言版本当中就被叫做自增 和自减运算符。

1、优先级

不管在什么语言中,运算符都有优先级,那么自增和自减运算符处于什么级别呢,它们处于第三级当中,优先级决定了运算的结合方向,从而先运算哪个部分,再运算哪个部分,运算符优先级一览表:

优先级结合方向运算符附加信息
1无结合clone、newclone 和 new
2从右向左**算术运算符
3从右向左++、--、~、(int)、(float)、(string)、(array)、(object)、(bool)、@类型、递增/递减、错误控制
4无结合instanceof类型
5从右向左!逻辑运算符
6从左向右*、/、%算术运算符
7从左向右+、-、.算术运算符和字符串运算符
8从左向右<<、>>位运算符
9无结合<、<=、>、>=比较运算符
10无结合==、!=、===、!==、<>、<=>比较运算符
11从左向右&位运算符和引用
12从左向右^位运算符
13从左向右|位运算符
14从左向右&&逻辑运算符
15从左向右||逻辑运算符
16从右向左??null 合并运算符
17从左向右? :三元运算符
18从右向左=、+=、-=、*=、**=、/=、.=、%=、&=、|=、^=、<<=、>>=赋值运算符
19从左向右and逻辑运算符
20从左向右xor逻辑运算符
21从左向右or逻辑运算符

2、属于单目还是双目

在语言当中运算符分为两种单目运算符和双目运算符,单目运算符又叫一元运算符(需要一个变量进行运算),双目运算符又叫二元运算符(需要两个变量进行运算),通过分析是属于单目运算符。其实还有三元运算符,这里就不多介绍了。

3、结合方向

上述表格可以看出是从右向左的,其实在运算当中,自增、自减是可以出现在变量的左边和右边,各表示的意义都有不同。

4、运算操作

例1:单个运算符进行运算(1)

<?php
$a = 1;
$b = 2;
echo "a=".++$a.",b=".--$b;  //输出 a=2,b=1

为啥是a=2,b=1呢,来看看,自动运算的过程是这样,自增和自减都是出现在变量的左边,首先 取变量$a,$b的值,然后 进行自增 加1,自减减1,最后执行echo输出$a,$b的值。

例2: 单个运算符进行运算(2)

<?php
$a = 1;
$b = 2;
echo "a=".$a++.",b=".$b--;  //输出 a=1,b=2

咦,大家肯定很纳闷,为什么$a,$b输出是1,2,而不是2,1呢。其实关键就在于运算符出现的位置,这次是在变量的右边,例1是在变量左边。过程其实也很简单,首先都是先取$a,$b的值,然后将值赋值给输出的$a,$b,执行echo,最后一步才是$a,$b进行自增加1,自减减1。

例3:多个运算符的运算

<?php
$a = 1;
$b = 2;
$c = ++$a + $b--;
echo "c=" . $c. ",b=" . $b;  //输出 c=4,b=1

对于这个大家相对来说应该会清楚了吧,输出结果为4。首先$a自增加1,然后取$b的值为2,之后执行加法运算值为4,最后将4赋值给 $c 后,$b在减1,如果要输出$b的值,那么为1。

例4:运用于循环(for/while)

<?php
for($i=1;$i<5;$i++) {
    echo 'i='.$i;
}     //输出 i=1i=2i=3i=4

for循环中大家应该都清楚运算规则,先 $i=1,比较 1<5,成立执行echo语句,输出i=1,输出后,再执行$i++,此时$i=2,再 执行 $i<5,变成2<5 ,成立执行echo语句,再输出$i,依此类推,当 $i=5时,条件不成立,程序终止执行。while的用法就不多介绍,与for相似。

好了,就介绍到这里了,看了后是不是更加了解呢?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值