我整理的PHP 7.0主要新特性


Posted in PHP onJanuary 07, 2016

截止到目前为止,PHP官方已经发布了php7的RC5版本,预计在11月份左右会发布第一个正式版本!现在来说php7的重大特性肯定已经是定型了,不会再有什么变动了。后续一些版本的迭代主要也就是修修bug,优化之类的。下面就来说话我们一直期待的php7.0新特征吧。

1.标量参数类型声明

现在支持字符串(string)、整型(int)、浮点数(float)、及布尔型(bool)参数声明,以前只支持类名、接口、数组及Callable
两种风格:强制转换模式(默认)与严格模式

<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
return array_sum($ints);
}
var_dump(sumOfInts(2, '3', 4.1));

2.返回类型声明

<?php
function arraysSum(array ...$arrays): array
{
return array_map(function(array $array): int {
return array_sum($array);
}, $arrays);
}
print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));

3.??运算符

?? 用于替代需要isset的场合,这是一个语法糖。

<?php
// Fetches the value of $_GET['user'] and returns 'nobody'
// if it does not exist.
$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
// Coalescing can be chained: this will return the first
// defined value out of $_GET['user'], $_POST['user'], and
// 'nobody'.
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';

4.<=> 比较运算符

就是看两个表达式值的大小,三种关系: = 返回0、< 返回-1、 > 返回 1

<?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 5.6已经支持CONST 语法定义数组类的常量,PHP7中支持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

小结:

PHP 7在性能方面的突破成为近来最热门的话题之一,目前官方PHP 7.0.0 Beta 2已经发布

新特性

性能提升:PHP 7要比PHP 5.6快两倍

全面一致的64位支持

移除了一些老的不在支持的SAPI(服务器端应用编程端口)和扩展

新增了空接合操作符(??)

PHP 相关文章推荐
php 用sock技术发送邮件的函数
Jul 21 PHP
PHP验证码类代码( 最新修改,完全定制化! )
Dec 02 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
Mar 17 PHP
在Yii框架中使用PHP模板引擎Twig的例子
Jun 13 PHP
php中出现空白页的原因及解决方法汇总
Jul 08 PHP
smarty简单分页的实现方法
Oct 27 PHP
Thinkphp连表查询及数据导出方法示例
Oct 15 PHP
详解php几行代码实现CSV格式文件输出
Jul 01 PHP
PHP基于递归算法解决兔子生兔子问题
May 11 PHP
php实现网页上一页下一页翻页过程详解
Jun 28 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
Nov 23 PHP
详解Laravel框架的依赖注入功能
May 27 PHP
php上传图片生成缩略图(GD库)
Jan 06 #PHP
joomla数据库操作示例代码
Jan 06 #PHP
Yii清理缓存的方法
Jan 06 #PHP
yii实现model添加默认值的方法(2种方法)
Jan 06 #PHP
如何使用微信公众平台开发模式实现多客服
Jan 06 #PHP
基于PHP技术开发客服工单系统
Jan 06 #PHP
分享php邮件管理器源码
Jan 06 #PHP
You might like
用PHP制作的意见反馈表源码
2007/03/11 PHP
PHP+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
php 生成自动创建文件夹并上传文件的示例代码
2014/03/07 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
PHP实现的简单sha1加密功能示例
2017/08/27 PHP
基于socket.io和node.js搭建即时通信系统
2014/07/30 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
2014/09/09 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
2015/08/06 Javascript
Angular实现form自动布局
2016/01/28 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
详解Node.js串行化流程控制
2017/05/04 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
Python处理JSON数据并生成条形图
2016/08/05 Python
Python使用PDFMiner解析PDF代码实例
2017/03/27 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
python读写文件write和flush的实现方式
2020/02/21 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
《有趣的发现》教学反思
2014/04/15 职场文书
旅游节目策划方案
2014/05/26 职场文书
啦啦队口号大全
2014/06/16 职场文书
环境日宣传活动总结
2014/07/09 职场文书
大学生实习证明范文(5篇)
2014/09/18 职场文书
办理信用卡工作证明
2014/09/30 职场文书
师范生小学见习总结
2015/06/23 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书
python 用递归实现通用爬虫解析器
2021/04/16 Python