以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.011 // 提交: 0f3794b38477eea13fb47fbe15a42798e612933812 // 日期: 2019-07-03T13:20:56.241Z13 // Electron: 4.2.514 // Chrome: 69.0.3497.12815 // Node.js: 10.11.016 // V8: 6.9.427.31-electron.017 // 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 // NULL6 // int(1)

 

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

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

 

相关文章