PHP 7新特征

2019-05-05  本文已影响0人  chenhongting

标量类型声明:

增加了对返回类型声明的支持。

<?php

function arraySum(array ...$arrays): array

{

    return array_map(function(array $array): int {

        return array_sum($array);

    }, $arrays);

}

print_r(arraySum([1,2,3], [4,5,6,], [7,8,9]));

?>

默认情况下,所有PHP文件都处于弱类型校验模式。标量类型声明模式有两种:强制模式(默认)和严格模式。

标量类型声明语法如下:

declare(strict_type = 1);

通过指定strict_types的值(1或者0)来表示校验模式:1表示严格类型校验模式,用于函数调用和返回语句;0表示强制类型。

null 合并运算符:

新增了null合并运算符"??". 它可以替换三元表达式和isset()。

$a = isset($_GET['a']) ? $_GET['a'] : 1;

现在可以替换成

$a = $_GET['a'] ?? 1;

组合比交符:

<=>用于比较两个表达式。如$a <=> $b,表示当$a大于,等于或者小于$b时分别返回1, 0, -1.

通过define()定义常量数组:

<?php

define('PERSON', ['xiaoming', 'xiaoli', 'xiaolan']);

echo PERSON[1];

?>

匿名类:

现在支持通过new class来实例化一个匿名类。

支持Unicode字符格式:

PHP7 支持任何有效的codepoint编码,输出为UTF-8编码格式的字符串。

<?php

echo "\u{6666}";

?>

更多的Error变为可捕获的Exception:

PHP 7 中更多的Error变为可捕获的Exception,如果不进行捕获,则为Error, 如果捕获,就变为一个可在程序内处理的Exception。这些可被捕获的Error通常都是不会对程序造成致命伤害的Error,如函数不存在等。

性能大幅提升:

PHP 7比PHP 5速度快2倍多。另外PHP7降低内存消耗,优化后PHP7使用更少的资源比PHP 5.6低了50%的内存消耗。同时PHP 7 也支持64位架构机器,运算速度更快。 PHP 7 可以服务更多的并发客户。

上一篇下一篇

猜你喜欢

热点阅读