我整理的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 substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
Dec 16 PHP
PHP 文件系统详解
Sep 13 PHP
采用thinkphp自带方法生成静态html文件详解
Jun 13 PHP
php常用hash加密函数
Nov 22 PHP
Codeigniter购物车类不能添加中文的解决方法
Nov 29 PHP
PHP实现的一致性哈希算法完整实例
Nov 14 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
Mar 07 PHP
php中mkdir()函数的权限问题分析
Sep 24 PHP
PHP5.6新增加的可变函数参数用法分析
Aug 25 PHP
php语言注释,单行注释和多行注释
Jan 21 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
May 09 PHP
TP5框架安全机制实例分析
Apr 05 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
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
2018/03/30 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
载入进度条 效果
2006/07/08 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
JS中常用的消息框总结
2018/02/24 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
微信小程序常用的3种提示弹窗实现详解
2019/09/19 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
Vue中axios拦截器如何单独配置token
2019/12/27 Javascript
Vue 请求传公共参数的操作
2020/07/31 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
Python实现中一次读取多个值的方法
2018/04/22 Python
python通过对字典的排序,对json字段进行排序的实例
2020/02/27 Python
Python如何急速下载第三方库详解
2020/11/02 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
贝尔帐篷精品店:Bell Tent Boutique
2019/06/12 全球购物
财务总经理岗位职责
2014/02/16 职场文书
保护黄河倡议书
2014/05/16 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
2016年先进班集体事迹材料
2016/02/26 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA