网站建设
建站服务目前来说php7的重大特性基本已经是定型了,PHP7对于上一个系列的PHP5.n,可以说是一个大规模的革新,尤其是在性能方面实现跨越式的大幅提升。
首先看一下php版本速度测试和压力测试图:
上图为:PHP7的性能测试结果,耗时从2.991下降到1.186,大幅度下降60%。
上图为:WordPress的QPS压测,PHP7对比PHP5.6,QPS提升2.77倍。
由此可见,php7是个新的趋势。
下面介绍一下php7的功能
1.标量参数类型声明
现在支持字符串(string)、整型(int)、浮点数(float)、及布尔型(bool)参数声明,以前只支持类名、接口、数组及Callable
两种风格:强制转换模式(默认)与严格模式
<?php function sumOfInts(int ...$ints) { return array_sum($ints); } var_dump(sumOfInts(2, '3', 4.1));
2.返回类型声明
<?php function arraysmohuli(array ...$arrays): array { return array_map(function(array $array): int { return arraysmohuli($array); }, $arrays); } print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));
3.??运算符
<?php $username = $_GET['user'] ?? 'mohuli'; 等价于 $username = isset($_GET['user']) ?? $_GET['user'] ?? 'mohuli';
4.<=> 比较运算符
<?php // Integers echo 1 <=> 1; // 0 echo 1 <=> 2; // -1 echo 2 <=> 1; // 1 // Floats echo 1.5 <=> 1.5; // 0 echo 1.5 <=> 2.5; // -1 echo 2.5 <=> 1.5; // 1 // Strings echo "a" <=> "a"; // 0 echo "a" <=> "b"; // -1 echo "b" <=> "a"; // 1
5.define支持定义数组类型的值
<?php define('ANIMALS', [ 'dog', 'cat', 'bird' ]); echo ANIMALS[1]; // outputs "cat"
6.匿名类
<?php interface Logger { public function log(string $msg); } class Application { private $logger; public function getLogger(): Logger { return $this->logger; } public function setLogger(Logger $logger) { $this->logger = $logger; } } $app = new Application; $app->setLogger(new class implements Logger { public function log(string $msg) { echo $msg; } }); var_dump($app->getLogger());
7.增加了整除函数 intdiv