xcguoyu 2019-10-19
// 环境 // // php版本 // PHP 7.0.33-0+deb9u1 (cli) (built: Dec 7 2018 11:36:49) ( NTS ) // Copyright (c) 1997-2017 The PHP Group // Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies // with Zend OPcache v7.0.33-0+deb9u1, Copyright (c) 1999-2017, by Zend Technologies // // vs code 信息 // 版本: 1.36.0 // 提交: 0f3794b38477eea13fb47fbe15a42798e6129338 // 日期: 2019-07-03T13:20:56.241Z // Electron: 4.2.5 // Chrome: 69.0.3497.128 // Node.js: 10.11.0 // V8: 6.9.427.31-electron.0 // OS: Linux x64 4.15.0-30deepin-generic
$a = 1; var_dump( $a++ ); $a = 1; var_dump( ++$a ); $a = 1; var_dump( $a-- ); $a = 1; var_dump( --$a ); // int(1) // int(2) // int(1) // int(0) 2.对浮点型前【后】自增(自减),在获取浮点型的值之前【后】,值递增(递减),结果为整数时,输出整数,但类型依然为浮点型。 $a = 1.0; var_dump( $a++ ); var_dump( $a ); $a = 1.0; var_dump( ++$a ); $a = 1.0; var_dump( $a-- ); var_dump( $a ); $a = 1.0; var_dump( --$a ); // float(1) // float(2) // float(2) // float(1) // float(0) // float(0) 3.对字符串型整数前自增(自减),在获取字符串型整数之前,值递增(递减),结果为整型。 $a = ‘1‘; var_dump( ++$a ); $a = ‘1‘; var_dump( --$a ); // int(2) // int(0) 4.对字符串型整数后自增(自减),在获取字符串型整数之后(获取的是字符串型),值递增(递减),结果为整型。 $a = ‘1‘; var_dump( $a++ ); var_dump( $a ); $a = ‘1‘; var_dump( $a-- ); var_dump( $a ); // string(1) "1" // int(2) // string(1) "1" // int(0) 5.对字符串型浮点数前自增(自减),在获取字符串型浮点数之前,值递增(递减),结果为整数时,输出整数,结果为浮点型。 $a = ‘1.0‘; var_dump( ++$a ); $a = ‘1.0‘; var_dump( --$a ); // float(2) // float(0) 6.对字符串型浮点数后自增(自增),在获取字符串型浮点数之后(获取的是字符串型),值递增(递减),结果为整数时,输出整数,结果为浮点型。 $a = ‘1.0‘; var_dump( $a++ ); var_dump( $a ); $a = ‘1.0‘; var_dump( $a-- ); var_dump( $a ); // string(3) "1.0" // float(2) // string(3) "1.0" // float(0) 7.对字符串型字符序列前【后】自增(字符串不能自减,只支持纯字母),在获取字符串型字符序列之前【后】,值类型不变, 值的结果分为如下几种情况: 第一种,字符序列全是小写,满小z进一,类似加法。 第二种,字符序列全是大写,满大Z进一,也类似加法。 第三种,字符序列包含小写和大写,如果某位原本就是大写,那么满大Z进一位,且这一位永远不会变成小写;如果某位原本就是小写,那么满小z进一位,这一位永远也不会变成大写。 $a = ‘az‘; var_dump( ++$a ); $a = ‘az‘; var_dump( $a++ ); $a = ‘AZ‘; var_dump( ++$a ); $a = ‘AZ‘; var_dump( $a++ ); $a = ‘aZ‘; var_dump( ++$a ); $a = ‘aZ‘; var_dump( $a++ ); // string(2) "ba" // string(2) "az" // string(2) "BA" // string(2) "AZ" // string(2) "bA" // string(2) "aZ" 8.对布尔型前【后】自增【减】,布尔型true和布尔型false值和类型不会改变。 $a = true; var_dump( $a++ ); var_dump( $a ); $a = true; var_dump( ++$a ); $a = true; var_dump( $a-- ); var_dump( $a ); $a = true; var_dump( --$a ); $a = false; var_dump( $a++ ); var_dump( $a ); $a = false; var_dump( ++$a ); $a = false; var_dump( $a-- ); var_dump( $a ); $a = false; var_dump( --$a ); // bool(true) // bool(true) // bool(true) // bool(true) // bool(true) // bool(true) // bool(false) // bool(false) // bool(false) // bool(false) // bool(false) // bool(false) 9.对空类型null前自增,在获取空类型null之前,值递增,结果为整型。 $a = null; var_dump( ++$a ); // int(1) 10.对空类型null前自减,在获取空类型null之前,对其进行自减,空类型null不会改变。 $a = null; var_dump( --$a ); // NULL 11.对空类型null后自增,在获取空类型null之后(获取的是空类型null),值递增,结果为整型。 $a = null; var_dump( $a++ ); var_dump( $a ); // NULL // int(1) 12.对空类型null后自减,在获取空类型null之后(获取的是空类型null),对其进行自减,空类型值null不会改变。 $a = null; var_dump( $a-- ); var_dump( $a ); // NULL // NULL