浅谈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 4.2书写安全的脚本
Oct 09 PHP
实用函数10
Nov 08 PHP
逐步提升php框架的性能
Jan 10 PHP
PHP实现Socket服务器的代码
Apr 03 PHP
thinkphp实现图片上传功能分享
Mar 04 PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 PHP
php cli配置文件问题分析
Oct 15 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
Mar 25 PHP
php flush无效,IIS7下php实时输出的方法
Aug 25 PHP
PHP数据的提交与过滤基本操作实例详解
Nov 11 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
PHP7安装Redis扩展教程【Linux与Windows平台】
2016/09/30 PHP
php微信开发之关注事件
2018/06/14 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
js控制框架刷新
2008/08/01 Javascript
js创建对象的几种常用方式小结(推荐)
2010/10/24 Javascript
javascript小数四舍五入多种方法实现
2012/12/23 Javascript
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
2013/04/28 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
2016/12/22 Javascript
vue做网页开场视频的实例代码
2017/10/20 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
Python读取键盘输入的2种方法
2015/06/16 Python
Python内置模块turtle绘图详解
2017/12/09 Python
python看某个模块的版本方法
2018/10/16 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
python对Excel的读取的示例代码
2020/02/14 Python
Python发送邮件实现基础解析
2020/08/14 Python
python统计mysql数据量变化并调用接口告警的示例代码
2020/09/21 Python
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
MATCHESFASHION.COM美国官网:英国奢侈品零售商
2018/10/29 全球购物
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
在职人员函授期间自我评价分享
2013/11/08 职场文书
金融专业个人求职信范文
2013/11/28 职场文书
社区八一活动方案
2014/02/03 职场文书
应届电子商务毕业自荐书范文
2014/02/11 职场文书
基层党建工作汇报材料
2014/08/15 职场文书
我为党旗添光彩演讲稿
2014/09/13 职场文书
物业项目经理岗位职责
2015/04/01 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书