// 环境
//
// 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
1.对整型前【后】自增(自减),在获取整型的值之前【后】,值递增(递减),结果为整型。
 $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

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

  1. [Swift]在Swift中实现自增(++)、自减(--)运算符:利用extension扩展Int类

    自增(++).自减(--)运算符主要用在For循环中,Swift有自己更简易的循环遍历方法,而且类似x- ++x这种代码不易维护. Swift为了营造自己的编码风格,树立自己的代码精神体系,已经不支持 ...

  2. C++ 自增、自减运算符的重载和性能分析

    01 ++.--运算符重载函数的格式 自增运算符和自减运算符是有前置和后置之分的,如: a++ // 后置自增运算符 ++a // 前置自增运算符 b-- // 后置自减运算符 --b // 前置自减 ...

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

    .d1 { border-style: none } .d2 { border-style: solid } .d3 { border-style: dotted } .d4 { border-sty ...

  4. java 自增和自减运算符

    /** 自增和自减运算符: ++: 如果是++b,则表示先对变量b+1,再执行其他的操作: 如果是b++,则表示先执行表达式操作,再对变量自身+1 --: 用法和++相同 */ //Test.java ...

  5. js自增++与自减--运算符

    /** * 自增(++)与自减(--)运算符 */ // 自增示例 var a = 1, c, d, e; console.log(`a++ = ${a++}`); // a++ = 1 consol ...

  6. Javascript自增、自减运算符

    JavaScript自增.自减运算符与表达式语法 var i++; var-- 声明变量 i-- 变量名 ++ -- 自增运算符 JavaScript自增.自减运算符与表达式 JavaScript自增 ...

  7. javascript中的自增与自减

    一直都对自增与自减的执行顺序有点糊涂,今天查了资料,来总结一下 a++(a--),就是指当时计算a,当下一次使用这个变量的时候才执行++或者-- ++a(--a),就是指当时就计算++或者-- 例1: ...

  8. Perl中的自增、自减

    自增和自减 perl也支持数值类型的自增和自减操作.不仅如此,还支持字符.字符串的自增.自减. 如果自增(++)和自减(--)符号放在数值的前面,则先增减,再返回: 如果自增(++)和自减(--)符号 ...

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

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

随机推荐

  1. OpenFOAM显示残差

    本文主要讲解两种方法用来显示OpenFOAM的计算残差,一种是采用OpenFOAM自带的foamMonitor来输出残差,另一种就是大家经常看见的采用pyFoam来输出残差.不管采用哪一种方法都必须安 ...

  2. cat命令的简单实现

    cat命令的简单实现 目标:简单的实现cat命令 实现的mic_cat命令主要有三大功能 1.mic_cat命令一次显示整个文件 $ mic_cat filename 2.mic_cat命令从键盘创建 ...

  3. mysql删除大表

    在mysql中遇到一个大表,大概有17G左右,在对这个表进行查询.修改时均遇到了很大的困难,于是想着删除这张表.通常的删除操作可以通过delete.drop.truncate操作,试了这三个命令,但是 ...

  4. 范仁义web前端介绍课程---3、课程大纲(初步)

    范仁义web前端介绍课程---3.课程大纲(初步) 一.总结 一句话总结: 知识点脉络(知识架构):刚开始对这个稍微了解一下就可以了,在逐步的学习过程中,心里大概有这样一套知识点的脉络 二.范仁义前端 ...

  5. JVM 主动类和被动类的使用

    主动使用和被动使用Demo 1.创建工程一个Gradle工程 下一步 下一步 点击完成 2.创建类 public class MyTest1 { public static void main(Str ...

  6. Python有堆栈/堆,如何管理内存?

    Python有堆栈/堆,如何管理内存? - 代码日志 https://codeday.me/bug/20171016/86264.html

  7. ArcMap与快捷键冲突

    ArcMap与快捷键冲突 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 问题:armap进入鼠标自动导航状态,arcmap失控,系统紊乱,导致 ...

  8. Gradle vs. Maven: Performance, Compatibility, Speed, & Builds

    Gradle vs. Maven: Performance, Compatibility, Speed, & Buildshttps://stackify.com/gradle-vs-mave ...

  9. StringBuffer & StringBuilder的区别

    StringBuffer是线程安全的,内部有锁.所以比StringBuilder慢一点. 在单线程生成字符串的情况下,优先使用StringBuilder. 这就是为啥有时候IntelliJ Idea会 ...

  10. 小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_1、SpringBoot2.x课程介绍和高手系列知识点

    1 ======================1.零基础快速入门SpringBoot2.0 5节课 =========================== 1.SpringBoot2.x课程全套介绍 ...