浅谈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 eval函数使用介绍
Dec 08 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
调试PHP程序的多种方法介绍
Nov 06 PHP
php启用sphinx全文搜索的实现方法
Dec 24 PHP
php简单实现短网址(短链)还原的方法(测试可用)
May 09 PHP
php的debug相关函数用法示例
Jul 11 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
Jul 03 PHP
PHP简单实现循环链表功能示例
Nov 10 PHP
Laravel框架路由设置与使用示例
Jun 12 PHP
laravel5.6实现数值转换
Oct 23 PHP
使用Git实现Laravel项目的自动化部署
Nov 24 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 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动态生成指定大小随机图片的方法
2016/03/25 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
PHP创建XML接口示例
2019/07/04 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
JavaScript原型式继承实现方法
2019/11/06 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
Python下的Mysql模块MySQLdb安装详解
2014/04/09 Python
Python中变量交换的例子
2014/08/25 Python
Python中对列表排序实例
2015/01/04 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
2015/04/24 Python
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
python爬取m3u8连接的视频
2018/02/28 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
详解Python网络框架Django和Scrapy安装指南
2019/04/01 Python
Python使用itchat 功能分析微信好友性别和位置
2019/08/05 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
python eventlet绿化和patch原理
2020/11/21 Python
单身旅行者的单身假期:Just You
2018/04/08 全球购物
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
房地产项目策划书
2014/02/05 职场文书
对祖国的寄语大全
2014/04/11 职场文书
2015年公司工作总结
2015/04/25 职场文书
最美乡村教师观后感
2015/06/11 职场文书