以php中的自增自自减运算符操作(整型,浮点型,字符串型,布尔型,空类型)数据

 1 // 环境
 2 //
 3 // php版本
 4 // PHP 7.0.33-0+deb9u1 (cli) (built: Dec  7 2018 11:36:49) ( NTS )
 5 // Copyright (c) 1997-2017 The PHP Group
 6 // Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
 7 //     with Zend OPcache v7.0.33-0+deb9u1, Copyright (c) 1999-2017, by Zend Technologies
 8 //
 9 // vs code 信息
10 // 版本: 1.36.0
11 // 提交: 0f3794b38477eea13fb47fbe15a42798e6129338
12 // 日期: 2019-07-03T13:20:56.241Z
13 // Electron: 4.2.5
14 // Chrome: 69.0.3497.128
15 // Node.js: 10.11.0
16 // V8: 6.9.427.31-electron.0
17 // OS: Linux x64 4.15.0-30deepin-generic

1.对整型前【后】自增(自减),在获取整型的值之前【后】,值递增(递减),结果为整型。

 1 $a = 1;
 2 var_dump( $a++ );
 3 $a = 1;
 4 var_dump( ++$a );
 5 $a = 1;
 6 var_dump( $a-- );
 7 $a = 1;
 8 var_dump( --$a );
 9
10 // int(1)
11 // int(2)
12 // int(1)
13 // int(0)

2.对浮点型前【后】自增(自减),在获取浮点型的值之前【后】,值递增(递减),结果为整数时,输出整数,但类型依然为浮点型。

 1 $a = 1.0;
 2 var_dump( $a++ );
 3 var_dump( $a );
 4 $a = 1.0;
 5 var_dump( ++$a );
 6 $a = 1.0;
 7 var_dump( $a-- );
 8 var_dump( $a );
 9 $a = 1.0;
10 var_dump( --$a );
11
12 // float(1)
13 // float(2)
14 // float(2)
15 // float(1)
16 // float(0)
17 // float(0)

3.对字符串型整数前自增(自减),在获取字符串型整数之前,值递增(递减),结果为整型。

1 $a = ‘1‘;
2 var_dump( ++$a );
3 $a = ‘1‘;
4 var_dump( --$a );
5
6 // int(2)
7 // int(0)

4.对字符串型整数后自增(自减),在获取字符串型整数之后(获取的是字符串型),值递增(递减),结果为整型。

 1 $a = ‘1‘;
 2 var_dump( $a++ );
 3 var_dump( $a );
 4 $a = ‘1‘;
 5 var_dump( $a-- );
 6 var_dump( $a );
 7
 8 // string(1) "1"
 9 // int(2)
10 // string(1) "1"
11 // int(0)

5.对字符串型浮点数前自增(自减),在获取字符串型浮点数之前,值递增(递减),结果为整数时,输出整数,结果为浮点型。

1 $a = ‘1.0‘;
2 var_dump( ++$a );
3 $a = ‘1.0‘;
4 var_dump( --$a );
5
6 // float(2)
7 // float(0)

6.对字符串型浮点数后自增(自增),在获取字符串型浮点数之后(获取的是字符串型),值递增(递减),结果为整数时,输出整数,结果为浮点型。

 1 $a = ‘1.0‘;
 2 var_dump( $a++ );
 3 var_dump( $a );
 4 $a = ‘1.0‘;
 5 var_dump( $a-- );
 6 var_dump( $a );
 7
 8 // string(3) "1.0"
 9 // float(2)
10 // string(3) "1.0"
11 // float(0)

7.对字符串型字符序列前【后】自增(字符串不能自减,只支持纯字母),在获取字符串型字符序列之前【后】,值类型不变,

值的结果分为如下几种情况:

第一种,字符序列全是小写,满小z进一,类似加法。

第二种,字符序列全是大写,满大Z进一,也类似加法。

第三种,字符序列包含小写和大写,如果某位原本就是大写,那么满大Z进一位,且这一位永远不会变成小写;如果某位原本就是小写,那么满小z进一位,这一位永远也不会变成大写。

 1 $a = ‘az‘;
 2 var_dump( ++$a );
 3 $a = ‘az‘;
 4 var_dump( $a++ );
 5
 6 $a = ‘AZ‘;
 7 var_dump( ++$a );
 8 $a = ‘AZ‘;
 9 var_dump( $a++ );
10
11 $a = ‘aZ‘;
12 var_dump( ++$a );
13 $a = ‘aZ‘;
14 var_dump( $a++ );
15
16 // string(2) "ba"
17 // string(2) "az"
18 // string(2) "BA"
19 // string(2) "AZ"
20 // string(2) "bA"
21 // string(2) "aZ"

8.对布尔型前【后】自增【减】,布尔型true和布尔型false值和类型不会改变。

 1 $a = true;
 2 var_dump( $a++ );
 3 var_dump( $a );
 4 $a = true;
 5 var_dump( ++$a );
 6 $a = true;
 7 var_dump( $a-- );
 8 var_dump( $a );
 9 $a = true;
10 var_dump( --$a );
11
12 $a = false;
13 var_dump( $a++ );
14 var_dump( $a );
15 $a = false;
16 var_dump( ++$a );
17 $a = false;
18 var_dump( $a-- );
19 var_dump( $a );
20 $a = false;
21 var_dump( --$a );
22
23 // bool(true)
24 // bool(true)
25 // bool(true)
26 // bool(true)
27 // bool(true)
28 // bool(true)
29 // bool(false)
30 // bool(false)
31 // bool(false)
32 // bool(false)
33 // bool(false)
34 // bool(false)

9.对空类型null前自增,在获取空类型null之前,值递增,结果为整型。

1 $a = null;
2 var_dump( ++$a );
3
4 // int(1)

10.对空类型null前自减,在获取空类型null之前,对其进行自减,空类型null不会改变。

1 $a = null;
2 var_dump( --$a );
3
4 // NULL

11.对空类型null后自增,在获取空类型null之后(获取的是空类型null),值递增,结果为整型。

1 $a = null;
2 var_dump( $a++ );
3 var_dump( $a );
4
5 // NULL
6 // int(1)

12.对空类型null后自减,在获取空类型null之后(获取的是空类型null),对其进行自减,空类型值null不会改变。

1 $a = null;
2 var_dump( $a-- );
3 var_dump( $a );
4
5 // NULL
6 // NULL

原文地址:https://www.cnblogs.com/zxcv123/p/11704894.html

时间: 2024-10-18 15:31:51

以php中的自增自自减运算符操作(整型,浮点型,字符串型,布尔型,空类型)数据的相关文章

算术运算符中的自增与自减的注意事项

++.--两种运算符都是单目运算符,具有向右结合性(也就是优先与运算符右边的变量结合),而且他们的优先级比其他算术运算符高.当++或--运算符置于变量的左边时,称为前置运算,表示先进行自增或自减运算再使用变量的值,而当++或--运算符置于变量的右边时,称为后置运算,表示先引用变量的值再自增或自减运算. 如,设i=1,j=2,则在计算++i+j--的结果时,先进行++i运算,得i=2,再进行j--运算,根据后置运算规则可知,系统将先引用j的原始值2与i的新值2相加,之后再进行j--,得j=1.因此

自增、自减运算符的前缀和后缀

试卷中有这么一道题目: 1 2 int a = 4; (++a) += i; 求a的数值,正确答案是10. 如果你认为这道题重点只是考察运算符优先级,可能很容易得到正确的答案. 但是,考虑过为什么下面的代码无法编译么? 自己在笔试时,考虑到了关于表达式作为赋值运算符左值的问题,但是自己确实又对重载"++"操作符的实现机制和函数原型不很了解,就误认为"a++"和"++a"这两种写法都不能作为赋值运算符左值,从而以为这道题出错了,或者故意考察这一点,

java 自增和自减运算符

/** 自增和自减运算符: ++: 如果是++b,则表示先对变量b+1,再执行其他的操作: 如果是b++,则表示先执行表达式操作,再对变量自身+1 --: 用法和++相同 */ //Test.java public class Test16{ public static void main(String args[]){ int age=28; int a=10; int b=++a; System.out.println("b:"+b); System.out.println(&qu

Java基础知识(一) 自增、自减运算符

.d1 { border-style: none } .d2 { border-style: solid } .d3 { border-style: dotted } .d4 { border-style: dashed } .d5 { border-style: double } .d6 { border-style: groove } .d7 { border-style: ridge } .d8 { border-style: inset } .d9 { border-style: out

第二部分 关系与比较运算符 、 自增与自减运算符、条件逻辑运算符

关系与比较运算符: 等于:  = 大于:> 大于等于:>= 小于:< 小于等于:<= 不等于:!= 自增与自减运算符:运算符和位置 运算符:++和-- 位置: 前置:先计算,将计算后的结果赋给左侧 后置:先计算,将计算前的结果赋给左侧 条件逻辑运算符:与(&&).或(||).非(!)

自增与自减运算符

自增与自减运算符 自增运算符为“++”,其功能是使变量的值自增1:自减运算符为“--”,其功能是使变量值自减1.它们经常使用在循环中.自增自减运算符有以下几种形式: 注意:无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1,无论是a--还是--a都等同于a=a-1,在表达式执行完毕后a的值都自减少1. 请分析如下代码输出结果: 小伙伴们,别急着看运行结果,自己先想想看结果是什么? 运行结果: 一个实例: 原文地址:https://www.cnblogs.com/hgli

javascript中的自增与自减

一直都对自增与自减的执行顺序有点糊涂,今天查了资料,来总结一下 a++(a--),就是指当时计算a,当下一次使用这个变量的时候才执行++或者-- ++a(--a),就是指当时就计算++或者-- 例1: var c =1;var b = (c++)+c;alert(b);//3 此时就是,先计算c++,因为表达式中,还存在一个c,所以此时(暂时将c++看成整体a)a = 1,此后c立即增1即a=2,接着计算第二个c=1, 然后将a+c的值3赋给b 例2: var c =1;var b = (++c

C++自增和自减运算符(--和++)

在C和C++中,常在表达式中使用自增(++)和自减(--)运算符,他们的作用是使变量的值增1或减1,如:++i(在使用i之前,先使i的值加1,如果i的原值为3,则执行j=++i后,j的值为4)--i (在使用i之前,先使i的值减1,如果i的原值为3,则执行j=--i后,j的值为2)i++ (在使用i之后,使i的值加1,如果i的原值为3,则执行j=i++后,j的值为3,然后i变为4)i--(在使用i之后,使i的值减1,如果i的原值为3,则执行j=i--后,j的值为3,然后i变为2)++i是先执行i

关于PHP中的自增、自减操作的奥秘

首先看一道面试题: $a = 1; $b = &$a; if ($b == $a++) echo "true"; else echo "false"; 首先,创建了一个变量$a,并且将数值设定为了1: 然后,创建了一个变量$b,并将其作为对$a的一个引用: 最后这个判断语句中,包含两个opcode:POST_INC 和 IS_EQUAL.首先执行的是先返回后自增语句(POST_INC),首先返回1,然后$a自增为了2,因为$b是$a的一个引用,$b也是2.然