浅谈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教程 预定义变量
Oct 23 PHP
php地址引用(php地址引用的效率问题)
Mar 23 PHP
PHPUnit安装及使用示例
Oct 29 PHP
php获取随机数组列表的方法
Nov 13 PHP
Laravel 5框架学习之用户认证
Apr 09 PHP
php防止用户重复提交表单
Nov 02 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
Dec 29 PHP
PHP实现多级分类生成树的方法示例
Feb 07 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
浅谈laravel orm 中的一对多关系 hasMany
Oct 21 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
Feb 11 PHP
php去除deprecated的实例方法
Nov 17 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 Cookie的一个使用注意点
2008/11/08 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
详解json在php中的应用
2018/09/30 PHP
用JavaScript调用WebService的示例
2008/04/07 Javascript
html超链接打开窗口大小的方法
2013/03/05 Javascript
JavaScript 函数惰性载入的实现及其优点介绍
2013/08/12 Javascript
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
js命名空间写法示例
2015/12/18 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
Vue父子之间值传递的实例教程
2020/07/02 Javascript
vue添加自定义右键菜单的完整实例
2020/12/08 Vue.js
微信小程序选择图片控件
2021/01/19 Javascript
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
使用pytorch完成kaggle猫狗图像识别方式
2020/01/10 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
一款css实现的鼠标经过按钮的特效
2014/09/11 HTML / CSS
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
城野医生官方海外旗舰店:风靡亚洲毛孔收敛水
2018/04/26 全球购物
Audible英国:有声读物,30天免费试用
2019/10/16 全球购物
运动会800米加油稿
2014/02/22 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
2014年办公室文员工作总结
2014/11/12 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
常住证明范本
2015/06/23 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
2016年教代会开幕词
2016/03/04 职场文书