博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP 7.0 & 7.1 部分新增特性备忘
阅读量:6678 次
发布时间:2019-06-25

本文共 1594 字,大约阅读时间需要 5 分钟。

以下分别备忘 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

JIT

JIT, 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) {    }

参考

转载地址:http://chgxo.baihongyu.com/

你可能感兴趣的文章
Zend API:pval/zval 数据结构
查看>>
晒晒公司电脑配置
查看>>
Looper.myLooper().quit() 报 NullPointerException
查看>>
SSH1还是SSH2与Annotation还是Xml配置的问题
查看>>
简单构建工具SBT
查看>>
分享一个快速开发jQuery插件工具:jqueryboilerplate(转)
查看>>
Training的第二十天
查看>>
mysql设置主键自动增长
查看>>
linux系统的启动过程
查看>>
MySQL性能分析
查看>>
IIS错误日志 事件ID: 1093
查看>>
解决Unable to resolve target 'android-7'报错
查看>>
Connections could not be acquired from the unde...
查看>>
UIAlertView 总结
查看>>
【2016-03-17】移动互联网时代,看好你的隐私
查看>>
vi命令集
查看>>
oracle数据库克隆
查看>>
输出 pdf
查看>>
PHPCMS一个BUG
查看>>
APP云测试
查看>>