详细分析PHP7与PHP5区别


Posted in PHP onJune 26, 2021

1、php标量类型和返回类型声明

#主要分为两种模式,强制性模式和严格模式
declare(strict_types=1)
#1表示严格类型校验模式,作用于函数调用和返回语句;0表示弱类型校验模式。

2、NULL合并运算符

$site = isset($_GET['site']) ? $_GET['site'] : 'wo';
#简写成
$site = $_GET['site'] ??'wo';

3、组合预算符

// 整型比较
print( 1 <=> 1);print(PHP_EOL);
print( 1 <=> 2);print(PHP_EOL);
print( 2 <=> 1);print(PHP_EOL);
print(PHP_EOL); // PHP_EOL 为换行符
//结果:
0
-1
1

4、常量数组

// 使用 define 函数来定义数组
define('sites', [
   'Google',
   'Jser',
   'Taobao'
]);

print(sites[1]);

5、匿名类

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; 
// 使用 new class 创建匿名类 
$app->setLogger(new class implements Logger { 
   public function log(string $msg) { 
      print($msg); 
   } 
}); 

$app->getLogger()->log("我的第一条日志");

6、Closure::call()方法增加,意思向类绑定个匿名函数

<?php 
class A { 
    private $x = 1; 
} 

// PHP 7 之前版本定义闭包函数代码 
$getXCB = function() { 
    return $this->x; 
}; 

// 闭包函数绑定到类 A 上 
$getX = $getXCB->bindTo(new A, 'A');  

echo $getX(); 
print(PHP_EOL); 

// PHP 7+ 代码 
$getX = function() { 
    return $this->x; 
}; 
echo $getX->call(new A); 
?>

7、CSPRNG(伪随机数产生器)。

PHP 7 通过引入几个 CSPRNG 函数提供一种简单的机制来生成密码学上强壮的随机数。

random_bytes() - 加密生存被保护的伪随机字符串。

random_int() - 加密生存被保护的伪随机整数。

8、异常

PHP 7 异常用于向下兼容及增强旧的assert()函数。

9、use 语句改变

#可以导入同一个namespace下的类简写
use some\namespace\{ClassA, ClassB, ClassC as C};

10、Session 选项

//1.session_start()可以定义数组
<?php
session_start(&#91;
   'cache_limiter' => 'private',
   'read_and_close' => true,
]);
?>
//2.引入了一个新的php.ini设置(session.lazy_write),默认情况下设置为 true,意味着session数据只在发生变化时才写入。

11、PHP 7 移除的扩展

  • ereg
  • mssql
  • mysql
  • sybase_ct

为什么 PHP7 比 PHP5 性能提升了?

1、变量存储字节减小,减少内存占用,提升变量操作速度

2、改善数组结构,数组元素和hash映射表被分配在同一块内存里,降低了内存占用、提升了 cpu 缓存命中率

3、改进了函数的调用机制,通过优化参数传递的环节,减少了一些指令,提高执行效率

到此这篇关于详细分析PHP7与PHP5区别的文章就介绍到这了,更多相关PHP7与PHP5区别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
十天学会php之第四天
Oct 09 PHP
PHP定时自动生成静态HTML的实现代码
Jun 20 PHP
PHP isset()与empty()的使用区别详解
Aug 29 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
Jan 10 PHP
UCenter 批量添加用户的php代码
Jul 17 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
May 07 PHP
ThinkPHP之getField详解
Jun 20 PHP
PHP向socket服务器收发数据的方法
Jan 24 PHP
PHP 自动加载的简单实现(推荐)
Aug 12 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 PHP
php变量与字符串的增删改查操作示例
May 07 PHP
PHP7 list() 函数修改
Mar 09 PHP
laravel添加角色和模糊搜索功能的实现代码
一文搞懂php的垃圾回收机制
PHP中strval()函数实例用法
Jun 07 #PHP
使用php的mail()函数实现发送邮件功能
PHP实现rar解压读取扩展包小结
Jun 03 #PHP
详解Laravel制作API接口
May 31 #PHP
浅谈PHP7中的一些小技巧
May 29 #PHP
You might like
提升PHP速度全攻略
2006/10/09 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
PHP生成静态HTML页面最简单方法示例
2015/04/09 PHP
jquery ready函数源代码研究
2009/12/06 Javascript
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
javascript时间函数大全
2014/06/30 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
2016/05/10 Javascript
基于JavaScript实现在新的tab页打开url
2016/08/04 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
Node.js API详解之 vm模块用法实例分析
2020/05/27 Javascript
简单的python后台管理程序
2017/04/13 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
python三引号如何输入
2020/07/06 Python
python如何修改文件时间属性
2021/02/05 Python
HTML5自定义属性的问题分析
2019/08/16 HTML / CSS
Java里面有没有全局变量?为什么?
2015/02/06 面试题
销售辞职报告范文
2014/01/12 职场文书
微笑服务标语
2014/06/24 职场文书
事业单位聘任报告
2015/03/02 职场文书
中学生清明节演讲稿
2015/03/18 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
python Django框架快速入门教程(后台管理)
2021/07/21 Python
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python