详细分析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设计模式 Visitor 访问者模式
Jun 28 PHP
php 注释规范
Mar 29 PHP
php接口和抽象类使用示例详解
Mar 02 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
Aug 23 PHP
php截取html字符串及自动补全html标签的方法
Jan 15 PHP
功能强大的PHP POST提交数据类
Jul 15 PHP
PHP实现二维数组去重功能示例
Jan 12 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
phpMyAdmin通过密码漏洞留后门文件
Nov 20 PHP
php解压缩zip和rar压缩包文件的方法
Jul 10 PHP
PHP时间相关常用函数用法示例
Jun 03 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
ob_start(),ob_start('ob_gzhandler')使用
2006/12/25 PHP
PHP使用数组实现队列
2012/02/05 PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
2012/07/31 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
JS 获取HTML标签内的子节点的方法
2016/09/21 Javascript
BOM之navigator对象和用户代理检测
2017/02/10 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
浅谈ng-zorro使用心得
2018/12/03 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
Python爬虫文件下载图文教程
2018/12/23 Python
python文本数据处理学习笔记详解
2019/06/17 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
django认证系统实现自定义权限管理的方法
2019/08/28 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
python 两种方法删除空文件夹
2020/09/29 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
小学教师办公室制度
2014/02/03 职场文书
感恩老师演讲稿400字
2014/08/28 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
2014年设计师工作总结
2014/11/25 职场文书
校长师德表现自我评价
2015/03/05 职场文书
详解Spring Bean的配置方式与实例化
2022/06/10 Java/Android