PHP 7新特征
标量类型声明:
增加了对返回类型声明的支持。
<?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 可以服务更多的并发客户。