浅谈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中3种方法统计字符串中每种字符的个数并排序
Aug 27 PHP
解析php获取字符串的编码格式的方法(函数)
Jun 21 PHP
使用PHP Socket写的POP3类
Oct 30 PHP
浅谈PHP调用Webservice思路及源码分享
Jun 04 PHP
php实现获取及设置用户访问页面语言类
Sep 24 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
Sep 13 PHP
Smarty3配置及入门语法
Feb 22 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
Oct 25 PHP
PHP实现模拟http请求的方法分析
Dec 20 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
PhpStorm连接服务器并实现自动上传功能
Dec 09 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
数据库的日期格式转换
2006/10/09 PHP
php命令行用法入门实例教程
2014/10/27 PHP
广泛收集的jQuery拖放插件集合
2012/04/09 Javascript
jquery判断浏览器类型的代码
2012/11/05 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
2013/12/29 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
Vue实现跑马灯效果
2020/05/25 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
jQuery实现朋友圈查看图片
2020/09/11 jQuery
使用js原生实现年份轮播选择效果实例
2021/01/12 Javascript
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
python读写二进制文件的方法
2015/05/09 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
python跳过第一行快速读取文件内容的实例
2018/07/12 Python
学生信息管理系统Python面向对象版
2019/01/30 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
详解Python time库的使用
2019/10/10 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
企业项目策划书
2014/01/11 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
无犯罪记录证明
2014/09/19 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
员工规章制度范本
2015/08/07 职场文书
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python