浅谈PHP5.6 与 PHP7.0 区别


Posted in PHP onOctober 09, 2019

两者的区别

  • PHP7.0 比PHP5.6性能提升了两倍。
  • PHP7.0全面一致支持64位。
  • PHP7.0之前出现的致命错误,都改成了抛出异常。
  • 增加了空结合操作符(??)。效果相当于三元运算符。
  • PHP7.0新增了函数的返回类型声明。
  • PHP7.0新增了标量类型声明。
    • PHP 7 中的函数的形参类型声明可以是标量。在 PHP 5 中只可以是类名、接口、array 或者 callable (PHP 5.4,即可以是函数,包括匿名函数),现在也可以使用 string、int、float和 bool 了。
  • 新增加了匿名类。
    • PHP 5.3 开始有了匿名函数,现在又新增了匿名类;
  • PHP7.0之后溢移除了一些老的不再支持的SAPI(服务器端应用编程端口)和扩展。
  • define 可以定义常量数组。

PHP标量类型

#主要分为两种模式,强制性模式和严格模式
declare(strict_types=1)
#1表示严格类型校验模式,作用于函数调用和返回语句;0表示弱类型校验模式。

返回类型声明

PHP 7 增加了对返回类型声明的支持。 类似于参数类型声明,返回类型声明指明了函数返回值的类型。

<?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]));

NULL合并运算符

如果变量存在且值不为NULL, 它就会返回自身的值,否则返回它的第二个操作数。

$site = isset($_GET['site']) ? $_GET['site'] : 'wo';
#简写成
$site = $_GET['site'] ??'wo';

太空船操作符(组合比较符)

太空船操作符用于比较两个表达式。当$a小于、等于或大于$b时它分别返回-1、0或1

<?php
// 整数
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// 浮点数
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
 
// 字符串
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>

通过 define() 定义常量数组

*使用define()定义常量数组

<?php
define('ANIMALS', [
  'dog',
  'cat',
  'bird'
]);

echo ANIMALS[1]; // 输出 "cat"
?>

使用define()定义常量

<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
?>

使用关键字 const 定义常量

<?php
const CONSTANT = 'Hello World';

echo CONSTANT;
?>

匿名类

PHP7 支持持通过new class 来实例化一个匿名类,这可以用来替代一些“用后即焚”的完整类定义。

<?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());
?>

输出:

object(class@anonymous)#2 (0) {
}

参考

新特性

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
require(),include(),require_once()和include_once()区别
Mar 27 PHP
php摘要生成函数(无乱码)
Feb 04 PHP
解析thinkphp的左右值无限分类
Jun 20 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
Jun 13 PHP
PHP中的流(streams)浅析
Jul 02 PHP
smarty简单应用实例
Nov 03 PHP
详解HTTP Cookie状态管理机制
Jan 14 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
Aug 17 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
Jan 17 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 PHP
浅谈php常用的7大框架的优缺点
Jul 20 PHP
PHP copy函数使用案例代码解析
Sep 01 PHP
laravel按天、按小时,查询数据的实例
Oct 09 #PHP
laravel多条件查询方法(and,or嵌套查询)
Oct 09 #PHP
Laravel find in set排序实例
Oct 09 #PHP
对laravel in 查询的使用方法详解
Oct 09 #PHP
laravel实现查询最后执行的一条sql语句的方法
Oct 09 #PHP
Laravel使用原生sql语句并调用的方法
Oct 09 #PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
Oct 09 #PHP
You might like
多重?l件?合查?(一)
2006/10/09 PHP
PHP4实际应用经验篇(2)
2006/10/09 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
Prototype源码浅析 String部分(一)之有关indexOf优化
2012/01/15 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
JS+DIV实现鼠标划过切换层效果的实例代码
2013/11/26 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
AngularJS 限定$scope的范围实例详解
2017/06/23 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
nodejs一个简单的文件服务器的创建方法
2019/09/13 NodeJs
React 父子组件通信的实现方法
2019/12/05 Javascript
2分钟实现一个Vue实时直播系统的示例代码
2020/06/05 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python中base64加密解密方法实例分析
2015/05/16 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
python opencv 二值化 计算白色像素点的实例
2019/07/03 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
html5新特性与用法大全
2018/09/13 HTML / CSS
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
最新的大学生找工作自我评价
2013/09/29 职场文书
中英文自我评价语句
2013/12/20 职场文书
物流毕业生个人的自我评价
2014/02/13 职场文书
学习两会精神心得范文
2014/03/17 职场文书
《庐山的云雾》教学反思
2014/04/22 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
2014年政工师工作总结
2014/12/18 职场文书
外贸英文求职信范文
2015/03/19 职场文书
入党积极分子考察意见
2015/06/02 职场文书
创业计划书之o2o水果店
2019/08/30 职场文书