以下分别备忘 PHP 7.0 & 7.1 版本的部分新增特性。

PHP 7.0$foo = null;

$bar = $foo ?? 123;

// 相当于 $bar = isset($bar) ? $bar : 123

参数类型、返回类型与严格模式// 在严格模式下,传参类型不匹配会抛出错误

declare(strict_types=1);

function fn(int $a) : int

{

echo $a;

}

fn(1.2);

组合比较符二者相等时返回 0;

前者大于后者返回 1;

后者大于前者返回 -1;var_dump($a <=> $b);$a = 0;

$b = "abc";

var_dump($a <=> $b);

// 注意,字符串在与数字比较时会被当作 0;

含有返回值的生成器function generator()

{

yield 1;

yield 2;

return "a";

}

$generator = generator();

foreach ($generator as $val) {

var_dump($val);

}

var_dump($generator->getReturn());当没有返回值而使用 $generator->getReturn() 时,会返回 null。而且,在生成器没有输出完全时,使用 $generator->getReturn() 会报错。function generator()

{

yield 1;

yield 2;

return "a";

}

$generator = generator();

var_dump($generator->current());

var_dump($generator->next());

var_dump($generator->getReturn()); // 报错

var_dump($generator->current());

var_dump($generator->next());define('COLORS', ['red', 'blue', 'black']);

echo COLORS[1]; // red

多 use 声明use some\namespace\{ClassA, ClassB, ClassC as C};

use function some\namespace\{fn_a, fn_b, fn_c};

use const some\namespace\{ConstA, ConstB, ConstC};

数组解构list($a, $b) = ["a", "b"];

PHP 7.1

JITJIT, just in time. 运行时将部分指令转为机器码。对于计算密集型应用有较高的性能提升。

可选参数类型function(?string $name)

{

var_dump($name);

}

// 传参类型为 string 或 null

注意与默认参数值的区别:function(string $name = "default-name")

{

var_dump($name);

}

数组解构[$a, $b] = ["a", "b"];

iterable & callable 伪类类型使用 callable 类型代表传参类型为可调用的类型( 函数、实现了 invoke 的类实例 );

使用 iterable 类型限制传参类型为可迭代类型( 数组、实现了 Iterator 或 Traversable 接口的类实例 );

多异常类型捕获try {

} catch (OneException | AnotherException $e) {

}

php7和7.1,PHP7.0和7.1 部分新增特性备忘代码分享相关推荐

  1. php7的稳定性,探索PHP7(一)--性能

    #探索PHP7(一)--性能# ##前言## 在2015年12月2号,鸟哥的在开源中国发布的新闻写在 PHP 7 发布之际一些话,小编意识到从8月份发布第一个公测版到现在经过了将近4个月的等待PHP7 ...

  2. php7 编译参数详解,php7.4.5编译安装参数变更

    Last updated on 2020年6月11日 php7.3/7.4开始,很多之前的配置取消或者变更了,比如不支持"–with-gd, –with-mcrypt,  –with-lib ...

  3. ubuntu 16.04 + apache2 将php7.1 切换到 php7.3

    背景: ubuntu 更新时,选择,保留当前 php 版本,导致出现了 多个php 版本 ,phpinfo 显示的是 php7.1.在用 php -i 查看,发现,很多扩展打不开. 1. Ubuntu ...

  4. linux怎么升级php7,Ubuntu 系统升级到php7.2/7.3 (平滑升级)-朝花夕拾

    系统内核: Linux darrykinger-Virtual-machine 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 ...

  5. android5.0后新特性修改标题头,Android5.0中Material Design的新特性

    Material Design简介 Material Design是谷歌新的设计语言,谷歌希望寄由此来统一各种平台上的用户体验,Material Design的特点是干净的排版和简单的布局,以此来突出 ...

  6. MongoDB 3.0新增特性一览

    引言 在历经版本号修改(2.8版本直接跳到3.0版本)和11个rc版本之后,MongoDB 3.0于2015年3月3日正式发布.可以毫不夸张的说,该版本的新增特性标志着MongoDB这款典型的NoSQ ...

  7. php中的eq的含义,jquery,_jQuery中的eq(0)到底是什么意思??详情请看下面代码!,jquery - phpStudy...

    jQuery中的eq(0)到底是什么意思??详情请看下面代码! 手风琴效果 *{padding:0; margin:0;} .box{margin:50px auto; width:300px; he ...

  8. C# 4.0 新增特性

    之前的文章中,我们曾介绍过C#的历史及C# 4.0新增特性,包括:dynamic. 命名和可选参数.动态导入以及协变和逆变等.今天我们结合代码实例来具体看一下C#4.0中的四个比较重要的特性. 1.d ...

  9. 鸿蒙公测新增6款手机,鸿蒙公测第二期报名入口 鸿蒙2.0第二期公测新增支持机型有哪些...

    鸿蒙公测第二期报名已经开启了,这次新增六款nova机型,相信很快鸿蒙系统就会陆续的推送,不过已经申请的小伙伴想知道鸿蒙2.0公测审核要多久,小编觉得不着急,可以期待一下,下面一起来看看鸿蒙公测第二期报 ...

最新文章

  1. 做时间序列预测没必要深度学习!GBDT性能超DNN
  2. vs2010利用属性表自动配置OpenCV(win7的64位系统,opencv版本是2.4.10)
  3. MS SQL入门基础:创建和使用图表
  4. 计算机学院运动会通讯稿,2021大学运动会通讯稿篇
  5. java获取标准输出到文件_IO java标准输入与输出
  6. 8.1-5shell介绍 ,命令历史 ,命令补全和别名,通配符,输入输出重定向
  7. unity旧动画系统之animationClip/animationEvent/animationCurve
  8. Maven Dependency设置,详解!
  9. 在电脑上怎么压缩ppt文件?
  10. linux 查找py文件命令_Linux常用命令(一)
  11. 电脑系统32位和64位有哪些区别
  12. 怼天怼地的马斯克道歉了?
  13. [思考进阶]02 如何进行认知升级?
  14. duration java_Java Duration类| 带示例的multipliedBy()方法
  15. 手机连接投影机的步骤_苹果手机如何连投影仪_苹果手机与投影仪连接的方法教程(步骤)...
  16. Word排版——毕业论文专业排版3——编号+多级列表
  17. android 文字转化为图片格式,Android 文字生成图片
  18. RTCP(一): RR--Receiver Reports 接收者报告
  19. 给LINUX安装JDK
  20. clang: warning: argument unused during compilation: ‘-no-pie‘ [-Wunused-command-line-argument]

热门文章

  1. Day 08 周六下午的活动
  2. 13.执行外部命令subprocess
  3. Cissp-【第6章 安全评估与测试】-2021-3-15(661页-706页)
  4. 一学即懂得计算机视觉
  5. 实施文档_Word 2010文档处理案例教程
  6. linux信号处理编程实验报告,Linux编程之信号处理
  7. php 彩色标签插件,zblog php 彩色标签CSS源码
  8. linux设置mysql定时任务_原创 Linux下实现Mysql定时任务备份数据
  9. framebuffer显示JPEG图片
  10. win这个傻逼系统,高PPI上默认的情况下是放大的,放大了之后逻辑分辨率不跟着放大。