我整理的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多种序列化与反序列化的方法
Jun 06 PHP
Laravel 4.2 中队列服务(queue)使用感受
Oct 30 PHP
php中call_user_func函数使用注意事项
Nov 21 PHP
php强制用户转向www域名的方法
Jun 19 PHP
Zend Framework动作助手Redirector用法实例详解
Mar 05 PHP
php获取POST数据的三种方法实例详解
Dec 20 PHP
CentOS 上搭建 PHP7 开发测试环境
Feb 26 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 PHP
Laravel框架定时任务2种实现方式示例
Dec 08 PHP
详解PHP素材图片上传、下载功能
Apr 12 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的session cookie错误
2009/08/09 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
PHP可逆加密/解密函数分享
2012/09/25 PHP
win7计划任务定时执行PHP脚本设置图解
2014/05/09 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
浅析PHP开发规范
2018/02/05 PHP
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
基于JavaScript实现前端数据多条件筛选功能
2020/08/19 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
wxpython 学习笔记 第一天
2009/03/16 Python
python 从远程服务器下载东西的代码
2013/02/10 Python
Python列表计数及插入实例
2014/12/17 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
python实现五子棋小游戏
2020/03/25 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
用canvas画心电图的示例代码
2018/09/10 HTML / CSS
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
服装设计师职业生涯规划范文
2014/02/28 职场文书
2014年应急工作总结
2014/12/11 职场文书
2015年学校图书室工作总结
2015/05/19 职场文书
好人好事新闻稿
2015/07/17 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
如何写好一份优秀的工作总结?
2019/06/21 职场文书
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python