浅谈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 相关文章推荐
PHP模板引擎SMARTY
Oct 09 PHP
php中的MVC模式运用技巧
May 03 PHP
PHP Document 代码注释规范
Apr 13 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
php实现天干地支计算器示例
Mar 14 PHP
一款简单实用的php操作mysql数据库类
Dec 08 PHP
PHP实现格式化文件数据大小显示的方法
Jan 03 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
PHP扩展Memcache分布式部署方案
Dec 06 PHP
php支持断点续传、分块下载的类
May 02 PHP
PHP给源代码加密的几种方法汇总(推荐)
Feb 06 PHP
yii2中关于加密解密的那些事儿
Jun 12 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
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
thinkphp在模型中自动完成session赋值示例代码
2014/09/09 PHP
php 如何禁用eval() 函数实例详解
2016/12/01 PHP
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
jquery遍历标签中自定义的属性方法
2016/09/17 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
2020/08/13 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
python中zip()方法应用实例分析
2016/04/16 Python
django解决跨域请求的问题
2018/11/11 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
浅析python的Lambda表达式
2019/02/27 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
Python 给定的经纬度标注在地图上的实现方法
2019/07/05 Python
基于Python实现签到脚本过程解析
2019/10/25 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
如何使用pandas读取txt文件中指定的列(有无标题)
2020/03/05 Python
Jupyter notebook如何修改平台字体
2020/05/13 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
文员个人求职自荐信
2013/09/21 职场文书
会计系毕业个人自荐信格式
2013/09/23 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
低碳日宣传活动总结
2014/07/09 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
工作报告范文
2019/06/20 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书
Go语言grpc和protobuf
2022/04/13 Golang